##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
##
## Attaching package: 'rvest'
## The following object is masked from 'package:readr':
##
## guess_encoding
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
La base del acceso se hace en https://actualidad.larioja.org/coronavirus/datos
La página de datos abiertos es esta: https://web.larioja.org/dato-abierto/datoabierto?n=opd-452
La estructura html la sacamos copiando el html en local y abriéndolo con notepad++
<div class="col-md-6">
<dl>
<dt>Fecha de publicación:</dt>
<dd>28/04/2020</dd>
<dt>Última actualización:</dt>
<dd>30/04/2020</dd>
<dt>Ámbito temporal</dt>
<dd><i class="far fa-calendar-check" aria-hidden="true"></i> 24/02/2020
</dd>
<dt>Cronología</dt>
<dd>Fecha de creación: 28/04/2020 <br>Fecha de actualización de los datos: 30/04/2020</dd>
</dl>
</div>page_evolucion <- read_html('https://web.larioja.org/dato-abierto/datoabierto?n=opd-452')
# find all nodes with a class of "col_md_6"
col_md_6_evolucion <- html_nodes(page_evolucion, css = '.col-md-6')
col_md_6_evolucion## {xml_nodeset (8)}
## [1] <li class="col-md-6"><a href="/participacion"><span class="fas fa-lg fa-u ...
## [2] <li class="col-md-6"><a href="/quejas-y-sugerencias"><span class="fas fa- ...
## [3] <li class="col-md-6"><a href="/suscripciones"><span class="fas fa-lg fa-b ...
## [4] <li class="col-md-6"><a href="/contacto"><span class="fas fa-lg fa-envelo ...
## [5] <li class="col-md-6"><a href="https://www.larioja.org/direcciones-utiles/ ...
## [6] <li class="col-md-6"><a href="https://www.larioja.org/oficina-electronica ...
## [7] <div class="col-md-6">\n <dl>\n<dt>Creador</dt>\n ...
## [8] <div class="col-md-6">\n <dl>\n<dt>Fecha de public ...
Esto si vale
fecha_campos_evolucion <- html_children(col_md_6_evolucion[8]) %>%
html_nodes("dt") %>%
html_text(trim = TRUE)
fecha_campos_evolucion## [1] "Fecha de publicación:" "Última actualización:" "Ámbito temporal"
## [4] "Cronología"
fecha_valores_evolucion <- html_children(col_md_6_evolucion[8]) %>%
html_nodes("dd") %>%
html_text(trim = TRUE)
fecha_valores_evolucion## [1] "28/04/2020"
## [2] "11/05/2020"
## [3] "24/02/2020"
## [4] "Fecha de creación: 28/04/2020 Fecha de actualización de los datos: 11/05/2020"
rioja_evolucion <- read_csv(link_evolucion, locale = locale(date_names = "es"),
skip = 1,
col_names = c('fecha', 'confirmados_PCR', 'altas', 'fallecidos'))## Parsed with column specification:
## cols(
## fecha = col_character(),
## confirmados_PCR = col_double(),
## altas = col_double(),
## fallecidos = col_double()
## )
## Warning: 77 parsing failures.
## row col expected actual file
## 1 -- 4 columns 6 columns 'https://ias1.larioja.org/opendata/download?r=Y2Q9NDUyfGNmPTAz'
## 2 -- 4 columns 6 columns 'https://ias1.larioja.org/opendata/download?r=Y2Q9NDUyfGNmPTAz'
## 3 -- 4 columns 6 columns 'https://ias1.larioja.org/opendata/download?r=Y2Q9NDUyfGNmPTAz'
## 4 -- 4 columns 6 columns 'https://ias1.larioja.org/opendata/download?r=Y2Q9NDUyfGNmPTAz'
## 5 -- 4 columns 6 columns 'https://ias1.larioja.org/opendata/download?r=Y2Q9NDUyfGNmPTAz'
## ... ... ......... ......... ...............................................................
## See problems(...) for more details.
Revisar esto
Tienen que coincidir las fechas
Calculamos los acumulados
A la mierda, con un for…
# Valores diarios
rioja_evolucion$acumulado_confirmados <- rioja_evolucion$confirmados_PCR[1]
rioja_evolucion$acumulado_altas <- rioja_evolucion$altas[1]
rioja_evolucion$acumulado_fallecidos <- rioja_evolucion$fallecidos[1]
for (i in 2:dim(rioja_evolucion)[1]) {
rioja_evolucion$acumulado_confirmados[i] <- rioja_evolucion$acumulado_confirmados[i-1] + rioja_evolucion$confirmados_PCR[i]
rioja_evolucion$acumulado_altas[i] <- rioja_evolucion$acumulado_altas[i-1] + rioja_evolucion$altas[i]
rioja_evolucion$acumulado_fallecidos[i] <- rioja_evolucion$acumulado_fallecidos[i-1] + rioja_evolucion$fallecidos[i]
}rioja_evolucion2 <- rioja_evolucion %>%
arrange(fecha) %>%
mutate(total_confirmados = confirmados_PCR + lag(total_confirmados))Incorporamos la fecha del dato
rioja_evolucion$fecha_publicacion_evolucion = as.Date(fecha_valores_evolucion[1], '%d/%m/%Y')
rioja_evolucion$ultima_actualizacion_evolucion = as.Date(fecha_valores_evolucion[2], '%d/%m/%Y')
rioja_evolucion$ambito_temporal_evolucion = as.Date(fecha_valores_evolucion[3], '%d/%m/%Y')## fecha confirmados_PCR altas fallecidos
## Min. :2020-02-24 Min. : 0.00 Min. : 0.00 Min. : 0.000
## 1st Qu.:2020-03-14 1st Qu.: 8.00 1st Qu.: 1.00 1st Qu.: 0.000
## Median :2020-04-02 Median : 33.00 Median : 33.00 Median : 3.000
## Mean :2020-04-02 Mean : 52.05 Mean : 35.06 Mean : 4.494
## 3rd Qu.:2020-04-21 3rd Qu.: 75.00 3rd Qu.: 61.00 3rd Qu.: 7.000
## Max. :2020-05-10 Max. :241.00 Max. :111.00 Max. :19.000
## acumulado_confirmados acumulado_altas acumulado_fallecidos
## Min. : 0 Min. : 0.0 Min. : 0.0
## 1st Qu.: 300 1st Qu.: 3.0 1st Qu.: 3.0
## Median :2224 Median : 745.0 Median :109.0
## Mean :2063 Mean : 975.3 Mean :146.9
## 3rd Qu.:3704 3rd Qu.:1899.0 3rd Qu.:298.0
## Max. :4008 Max. :2700.0 Max. :346.0
## fecha_publicacion_evolucion ultima_actualizacion_evolucion
## Min. :2020-04-28 Min. :2020-05-11
## 1st Qu.:2020-04-28 1st Qu.:2020-05-11
## Median :2020-04-28 Median :2020-05-11
## Mean :2020-04-28 Mean :2020-05-11
## 3rd Qu.:2020-04-28 3rd Qu.:2020-05-11
## Max. :2020-04-28 Max. :2020-05-11
## ambito_temporal_evolucion
## Min. :2020-02-24
## 1st Qu.:2020-02-24
## Median :2020-02-24
## Mean :2020-02-24
## 3rd Qu.:2020-02-24
## Max. :2020-02-24
Guardamos
La página de datos abiertos es esta: https://web.larioja.org/dato-abierto/datoabierto?n=opd-461
page_hospitales <- read_html('https://web.larioja.org/dato-abierto/datoabierto?n=opd-461')
# find all nodes with a class of "col_md_6"
col_md_6_hospitales <- html_nodes(page_hospitales, css = '.col-md-6')
col_md_6_hospitales## {xml_nodeset (8)}
## [1] <li class="col-md-6"><a href="/participacion"><span class="fas fa-lg fa-u ...
## [2] <li class="col-md-6"><a href="/quejas-y-sugerencias"><span class="fas fa- ...
## [3] <li class="col-md-6"><a href="/suscripciones"><span class="fas fa-lg fa-b ...
## [4] <li class="col-md-6"><a href="/contacto"><span class="fas fa-lg fa-envelo ...
## [5] <li class="col-md-6"><a href="https://www.larioja.org/direcciones-utiles/ ...
## [6] <li class="col-md-6"><a href="https://www.larioja.org/oficina-electronica ...
## [7] <div class="col-md-6">\n <dl>\n<dt>Creador</dt>\n ...
## [8] <div class="col-md-6">\n <dl>\n<dt>Fecha de public ...
fecha_campos_hospitales <- html_children(col_md_6_hospitales[8]) %>%
html_nodes("dt") %>%
html_text(trim = TRUE)
fecha_campos_hospitales## [1] "Fecha de publicación:" "Última actualización:" "Ámbito temporal"
## [4] "Cronología"
fecha_valores_hospitales <- html_children(col_md_6_hospitales[8]) %>%
html_nodes("dd") %>%
html_text(trim = TRUE)
fecha_valores_hospitales## [1] "28/04/2020"
## [2] "11/05/2020"
## [3] "24/02/2020"
## [4] "Fecha de creación: 28/04/2020 Fecha de actualización de los datos: 11/05/2020"
Ahora bajamos el fichero
rioja_hospitales <- read_delim(link_hospitales, ",", escape_double = FALSE,
na = c("", "NA", "-"), trim_ws = TRUE)## Parsed with column specification:
## cols(
## Hospital = col_character(),
## Total = col_double(),
## `En planta` = col_double(),
## UCI = col_double()
## )
names(rioja_hospitales) <- c("hospital", "hospitalizados_total",
"hospitalizados_planta", "hospitalizados_uci")## [1] 77
Creamos una línea con los totales
rioja_hospitales <- rbind(rioja_hospitales, data.frame(hospital = 'Total',
hospitalizados_total = sum(rioja_hospitales$hospitalizados_total, na.rm = TRUE),
hospitalizados_planta = sum(rioja_hospitales$hospitalizados_planta, na.rm = TRUE),
hospitalizados_uci = sum(rioja_hospitales$hospitalizados_uci, na.rm = TRUE)))Incorporamos la fecha del dato
rioja_hospitales$fecha_publicacion_hospitales = as.Date(fecha_valores_hospitales[1], '%d/%m/%Y')
rioja_hospitales$ultima_actualizacion_hospitales = as.Date(fecha_valores_hospitales[2], '%d/%m/%Y')
rioja_hospitales$ambito_temporal_hospitales = as.Date(fecha_valores_hospitales[3], '%d/%m/%Y')## hospital hospitalizados_total hospitalizados_planta
## Length:5 Min. : 4.0 Min. : 4.0
## Class :character 1st Qu.:11.0 1st Qu.:11.0
## Mode :character Median :12.0 Median :12.0
## Mean :30.8 Mean :26.4
## 3rd Qu.:50.0 3rd Qu.:39.0
## Max. :77.0 Max. :66.0
##
## hospitalizados_uci fecha_publicacion_hospitales
## Min. :11 Min. :2020-04-28
## 1st Qu.:11 1st Qu.:2020-04-28
## Median :11 Median :2020-04-28
## Mean :11 Mean :2020-04-28
## 3rd Qu.:11 3rd Qu.:2020-04-28
## Max. :11 Max. :2020-04-28
## NA's :3
## ultima_actualizacion_hospitales ambito_temporal_hospitales
## Min. :2020-05-11 Min. :2020-02-24
## 1st Qu.:2020-05-11 1st Qu.:2020-02-24
## Median :2020-05-11 Median :2020-02-24
## Mean :2020-05-11 Mean :2020-02-24
## 3rd Qu.:2020-05-11 3rd Qu.:2020-02-24
## Max. :2020-05-11 Max. :2020-02-24
##
Revisar que cuadra
# En esta caso es la última línea
diario <- data.frame(hospitalizados_total = rioja_hospitales$hospitalizados_total[dim(rioja_hospitales)[1]],
hospitalizados_planta = rioja_hospitales$hospitalizados_planta[dim(rioja_hospitales)[1]],
hospitalizados_uci = rioja_hospitales$hospitalizados_uci[dim(rioja_hospitales)[1]],
hospitalizados_total_s_pedro = rioja_hospitales$hospitalizados_total[rioja_hospitales$hospital == 'Hospital San Pedro'],
hospitalizados_planta_s_pedro = rioja_hospitales$hospitalizados_planta[rioja_hospitales$hospital == 'Hospital San Pedro'],
hospitalizados_uci_s_pedro = rioja_hospitales$hospitalizados_uci[rioja_hospitales$hospital == 'Hospital San Pedro'],
hospitalizados_total_la_rioja = rioja_hospitales$hospitalizados_total[rioja_hospitales$hospital == 'Hospital de La Rioja'],
hospitalizados_planta_la_rioja = rioja_hospitales$hospitalizados_planta[rioja_hospitales$hospital == 'Hospital de La Rioja'],
hospitalizados_uci_la_rioja = rioja_hospitales$hospitalizados_uci[rioja_hospitales$hospital == 'Hospital de La Rioja'],
hospitalizados_total_calahorra = rioja_hospitales$hospitalizados_total[rioja_hospitales$hospital == 'F. H. Calahorra'],
hospitalizados_planta_calahorra = rioja_hospitales$hospitalizados_planta[rioja_hospitales$hospital == 'F. H. Calahorra'],
hospitalizados_uci_calahorra = rioja_hospitales$hospitalizados_uci[rioja_hospitales$hospital == 'F. H. Calahorra'],
hospitalizados_total_manzanos = rioja_hospitales$hospitalizados_total[rioja_hospitales$hospital == 'Los Manzanos'],
hospitalizados_planta_manzanos = rioja_hospitales$hospitalizados_planta[rioja_hospitales$hospital == 'Los Manzanos'],
hospitalizados_uci_manzanos = rioja_hospitales$hospitalizados_uci[rioja_hospitales$hospital == 'Los Manzanos'],
fecha_publicacion_hospitales = as.Date(fecha_valores_hospitales[1], '%d/%m/%Y'),
ultima_actualizacion_hospitales = as.Date(fecha_valores_hospitales[2], '%d/%m/%Y'),
ambito_temporal_hospitales = as.Date(fecha_valores_hospitales[3], '%d/%m/%Y')
)Sólo pongo los totales. Los datos son semanales
Guardamos
Añadimos al diario
Porcentaje de hospitalizados por grupo de edad y sexo a a fecha actual
La página de datos abiertos es esta: https://web.larioja.org/dato-abierto/datoabierto?n=opd-453
page_hospitalizados_porcentaje <- read_html('https://web.larioja.org/dato-abierto/datoabierto?n=opd-453')
# find all nodes with a class of "col_md_6"
col_md_6_hospitalizados_porcentaje <- html_nodes(page_hospitalizados_porcentaje, css = '.col-md-6')
col_md_6_hospitalizados_porcentaje## {xml_nodeset (8)}
## [1] <li class="col-md-6"><a href="/participacion"><span class="fas fa-lg fa-u ...
## [2] <li class="col-md-6"><a href="/quejas-y-sugerencias"><span class="fas fa- ...
## [3] <li class="col-md-6"><a href="/suscripciones"><span class="fas fa-lg fa-b ...
## [4] <li class="col-md-6"><a href="/contacto"><span class="fas fa-lg fa-envelo ...
## [5] <li class="col-md-6"><a href="https://www.larioja.org/direcciones-utiles/ ...
## [6] <li class="col-md-6"><a href="https://www.larioja.org/oficina-electronica ...
## [7] <div class="col-md-6">\n <dl>\n<dt>Creador</dt>\n ...
## [8] <div class="col-md-6">\n <dl>\n<dt>Fecha de public ...
fecha_campos_hospitalizados_porcentaje <- html_children(col_md_6_hospitalizados_porcentaje[8]) %>%
html_nodes("dt") %>%
html_text(trim = TRUE)
fecha_campos_hospitalizados_porcentaje## [1] "Fecha de publicación:" "Última actualización:" "Ámbito temporal"
## [4] "Cronología"
fecha_valores_hospitalizados_porcentaje <- html_children(col_md_6_hospitalizados_porcentaje[8]) %>%
html_nodes("dd") %>%
html_text(trim = TRUE)
fecha_valores_hospitalizados_porcentaje## [1] "28/04/2020"
## [2] "11/05/2020"
## [3] "24/02/2020"
## [4] "Fecha de creación: 28/04/2020 Fecha de actualización de los datos: 11/05/2020"
Ahora bajamos el fichero
rioja_hospitalizados_porcentaje <- read_delim(link_hospitalizados_porcentaje, ",", escape_double = FALSE,
na = c("", "NA", "-"), trim_ws = TRUE)## Warning: Missing column names filled in: 'X4' [4]
## Parsed with column specification:
## cols(
## `Grupo de edad (años)` = col_character(),
## Hombres = col_double(),
## Mujeres = col_double(),
## X4 = col_logical()
## )
Borramos x4
Incorporamos la fecha del dato
rioja_hospitalizados_porcentaje$fecha_publicacion_hospitalizados_porcentaje = as.Date(fecha_valores_hospitalizados_porcentaje[1], '%d/%m/%Y')
rioja_hospitalizados_porcentaje$ultima_actualizacion_hospitalizados_porcentaje = as.Date(fecha_valores_hospitalizados_porcentaje[2], '%d/%m/%Y')
rioja_hospitalizados_porcentaje$ambito_temporal_hospitalizados_porcentaje = as.Date(fecha_valores_hospitalizados_porcentaje[3], '%d/%m/%Y')## franja_edad hombres mujeres
## Length:8 Min. : 0.500 Min. : 0.700
## Class :character 1st Qu.: 1.475 1st Qu.: 1.325
## Mode :character Median : 6.300 Median : 5.400
## Mean :12.500 Mean :12.488
## 3rd Qu.:15.650 3rd Qu.:10.500
## Max. :51.800 Max. :64.100
## fecha_publicacion_hospitalizados_porcentaje
## Min. :2020-04-28
## 1st Qu.:2020-04-28
## Median :2020-04-28
## Mean :2020-04-28
## 3rd Qu.:2020-04-28
## Max. :2020-04-28
## ultima_actualizacion_hospitalizados_porcentaje
## Min. :2020-05-11
## 1st Qu.:2020-05-11
## Median :2020-05-11
## Mean :2020-05-11
## 3rd Qu.:2020-05-11
## Max. :2020-05-11
## ambito_temporal_hospitalizados_porcentaje
## Min. :2020-02-24
## 1st Qu.:2020-02-24
## Median :2020-02-24
## Mean :2020-02-24
## 3rd Qu.:2020-02-24
## Max. :2020-02-24
## 'data.frame': 8 obs. of 6 variables:
## $ franja_edad : chr "0-9 " "10-19 " "20-29 " "30-39 " ...
## $ hombres : num 0.5 0.5 1.8 4.2 8.4 14.9 17.9 51.8
## $ mujeres : num 0.7 0.8 1.5 4.1 6.7 10 12 64.1
## $ fecha_publicacion_hospitalizados_porcentaje : Date, format: "2020-04-28" "2020-04-28" ...
## $ ultima_actualizacion_hospitalizados_porcentaje: Date, format: "2020-05-11" "2020-05-11" ...
## $ ambito_temporal_hospitalizados_porcentaje : Date, format: "2020-02-24" "2020-02-24" ...
## [1] 100
## [1] 99.9
Revisar que cuadra
# En esta caso es la última línea
diario <- data.frame(
# hospitalizados_hombres_00_09 = rioja_hospitalizados_porcentaje$hombres[rioja_hospitalizados_porcentaje$franja_edad == '0-9 '],
# hospitalizados_hombres_10_19 = rioja_hospitalizados_porcentaje$hombres[rioja_hospitalizados_porcentaje$franja_edad == '10-19 '],
# hospitalizados_hombres_20_19 = rioja_hospitalizados_porcentaje$hombres[rioja_hospitalizados_porcentaje$franja_edad == '20-29 '],
# hospitalizados_hombres_30_19 = rioja_hospitalizados_porcentaje$hombres[rioja_hospitalizados_porcentaje$franja_edad == '30-39 '],
# hospitalizados_hombres_40_19 = rioja_hospitalizados_porcentaje$hombres[rioja_hospitalizados_porcentaje$franja_edad == '40-49 '],
# hospitalizados_hombres_50_19 = rioja_hospitalizados_porcentaje$hombres[rioja_hospitalizados_porcentaje$franja_edad == '50-59 '],
# hospitalizados_hombres_60_19 = rioja_hospitalizados_porcentaje$hombres[rioja_hospitalizados_porcentaje$franja_edad == '60-69 '],
# hospitalizados_hombres_70_Mas = rioja_hospitalizados_porcentaje$hombres[rioja_hospitalizados_porcentaje$franja_edad == '70 y más'],
#
# hospitalizados_mujeres_00_09 = rioja_hospitalizados_porcentaje$mujeres[rioja_hospitalizados_porcentaje$franja_edad == '0-9 '],
# hospitalizados_mujeres_10_19 = rioja_hospitalizados_porcentaje$mujeres[rioja_hospitalizados_porcentaje$franja_edad == '10-19 '],
# hospitalizados_mujeres_20_19 = rioja_hospitalizados_porcentaje$mujeres[rioja_hospitalizados_porcentaje$franja_edad == '20-29 '],
# hospitalizados_mujeres_30_19 = rioja_hospitalizados_porcentaje$mujeres[rioja_hospitalizados_porcentaje$franja_edad == '30-39 '],
# hospitalizados_mujeres_40_19 = rioja_hospitalizados_porcentaje$mujeres[rioja_hospitalizados_porcentaje$franja_edad == '40-49 '],
# hospitalizados_mujeres_50_19 = rioja_hospitalizados_porcentaje$mujeres[rioja_hospitalizados_porcentaje$franja_edad == '50-59 '],
# hospitalizados_mujeres_60_19 = rioja_hospitalizados_porcentaje$mujeres[rioja_hospitalizados_porcentaje$franja_edad == '60-69 '],
# hospitalizados_mujeres_70_Mas = rioja_hospitalizados_porcentaje$mujeres[rioja_hospitalizados_porcentaje$franja_edad == '70 y más'],
hospitalizados_hombres_00_09 = rioja_hospitalizados_porcentaje$hombres[1],
hospitalizados_hombres_10_19 = rioja_hospitalizados_porcentaje$hombres[2],
hospitalizados_hombres_20_19 = rioja_hospitalizados_porcentaje$hombres[3],
hospitalizados_hombres_30_19 = rioja_hospitalizados_porcentaje$hombres[4],
hospitalizados_hombres_40_19 = rioja_hospitalizados_porcentaje$hombres[5],
hospitalizados_hombres_50_19 = rioja_hospitalizados_porcentaje$hombres[6],
hospitalizados_hombres_60_19 = rioja_hospitalizados_porcentaje$hombres[7],
hospitalizados_hombres_70_Mas = rioja_hospitalizados_porcentaje$hombres[8],
hospitalizados_mujeres_00_09 = rioja_hospitalizados_porcentaje$mujeres[1],
hospitalizados_mujeres_10_19 = rioja_hospitalizados_porcentaje$mujeres[2],
hospitalizados_mujeres_20_19 = rioja_hospitalizados_porcentaje$mujeres[3],
hospitalizados_mujeres_30_19 = rioja_hospitalizados_porcentaje$mujeres[4],
hospitalizados_mujeres_40_19 = rioja_hospitalizados_porcentaje$mujeres[5],
hospitalizados_mujeres_50_19 = rioja_hospitalizados_porcentaje$mujeres[6],
hospitalizados_mujeres_60_19 = rioja_hospitalizados_porcentaje$mujeres[7],
hospitalizados_mujeres_70_Mas = rioja_hospitalizados_porcentaje$mujeres[8],
fecha_publicacion_hospitalizados_porcentaje = as.Date(fecha_valores_hospitalizados_porcentaje[1], '%d/%m/%Y'),
ultima_actualizacion_hospitalizados_porcentaje = as.Date(fecha_valores_hospitalizados_porcentaje[2], '%d/%m/%Y'),
ambito_temporal_hospitalizados_porcentaje = as.Date(fecha_valores_hospitalizados_porcentaje[3], '%d/%m/%Y')
)Guardamos
Añadimos al diario
Porcentaje de hospitalizados en UCI por grupo de edad y sexo a fecha actual
La página de datos abiertos es esta: https://web.larioja.org/dato-abierto/datoabierto?n=opd-454
page_uci_porcentaje <- read_html('https://web.larioja.org/dato-abierto/datoabierto?n=opd-454')
# find all nodes with a class of "col_md_6"
col_md_6_uci_porcentaje <- html_nodes(page_uci_porcentaje, css = '.col-md-6')
col_md_6_uci_porcentaje## {xml_nodeset (8)}
## [1] <li class="col-md-6"><a href="/participacion"><span class="fas fa-lg fa-u ...
## [2] <li class="col-md-6"><a href="/quejas-y-sugerencias"><span class="fas fa- ...
## [3] <li class="col-md-6"><a href="/suscripciones"><span class="fas fa-lg fa-b ...
## [4] <li class="col-md-6"><a href="/contacto"><span class="fas fa-lg fa-envelo ...
## [5] <li class="col-md-6"><a href="https://www.larioja.org/direcciones-utiles/ ...
## [6] <li class="col-md-6"><a href="https://www.larioja.org/oficina-electronica ...
## [7] <div class="col-md-6">\n <dl>\n<dt>Creador</dt>\n ...
## [8] <div class="col-md-6">\n <dl>\n<dt>Fecha de public ...
fecha_campos_uci_porcentaje <- html_children(col_md_6_uci_porcentaje[8]) %>%
html_nodes("dt") %>%
html_text(trim = TRUE)
fecha_campos_uci_porcentaje## [1] "Fecha de publicación:" "Última actualización:" "Ámbito temporal"
## [4] "Cronología"
fecha_valores_uci_porcentaje <- html_children(col_md_6_uci_porcentaje[8]) %>%
html_nodes("dd") %>%
html_text(trim = TRUE)
fecha_valores_uci_porcentaje## [1] "28/04/2020"
## [2] "11/05/2020"
## [3] "24/02/2020"
## [4] "Fecha de creación: 28/04/2020 Fecha de actualización de los datos: 11/05/2020"
Ahora bajamos el fichero
rioja_uci_porcentaje <- read_delim(link_uci_porcentaje, ",", escape_double = FALSE,
na = c("", "NA", "-"), trim_ws = TRUE)## Warning: Missing column names filled in: 'X4' [4]
## Parsed with column specification:
## cols(
## `Grupo de edad (años)` = col_character(),
## Hombres = col_double(),
## Mujeres = col_double(),
## X4 = col_logical()
## )
Borramos x4
Incorporamos la fecha del dato
rioja_uci_porcentaje$fecha_publicacion_uci_porcentaje = as.Date(fecha_valores_uci_porcentaje[1], '%d/%m/%Y')
rioja_uci_porcentaje$ultima_actualizacion_uci_porcentaje = as.Date(fecha_valores_uci_porcentaje[2], '%d/%m/%Y')
rioja_uci_porcentaje$ambito_temporal_uci_porcentaje = as.Date(fecha_valores_uci_porcentaje[3], '%d/%m/%Y')## franja_edad hombres mujeres
## Length:8 Min. : 0.00 Min. : 0.00
## Class :character 1st Qu.: 1.50 1st Qu.: 0.00
## Mode :character Median : 3.05 Median : 4.50
## Mean :12.49 Mean :12.49
## 3rd Qu.:26.02 3rd Qu.:22.70
## Max. :36.70 Max. :45.50
## fecha_publicacion_uci_porcentaje ultima_actualizacion_uci_porcentaje
## Min. :2020-04-28 Min. :2020-05-11
## 1st Qu.:2020-04-28 1st Qu.:2020-05-11
## Median :2020-04-28 Median :2020-05-11
## Mean :2020-04-28 Mean :2020-05-11
## 3rd Qu.:2020-04-28 3rd Qu.:2020-05-11
## Max. :2020-04-28 Max. :2020-05-11
## ambito_temporal_uci_porcentaje
## Min. :2020-02-24
## 1st Qu.:2020-02-24
## Median :2020-02-24
## Mean :2020-02-24
## 3rd Qu.:2020-02-24
## Max. :2020-02-24
## 'data.frame': 8 obs. of 6 variables:
## $ franja_edad : chr "0-9 " "10-19 " "20-29 " "30-39 " ...
## $ hombres : num 2 0 0 2 4.1 24.5 36.7 30.6
## $ mujeres : num 0 0 0 4.5 4.5 22.7 22.7 45.5
## $ fecha_publicacion_uci_porcentaje : Date, format: "2020-04-28" "2020-04-28" ...
## $ ultima_actualizacion_uci_porcentaje: Date, format: "2020-05-11" "2020-05-11" ...
## $ ambito_temporal_uci_porcentaje : Date, format: "2020-02-24" "2020-02-24" ...
## [1] 99.9
## [1] 99.9
Revisar que cuadra
# En esta caso es la última línea
diario <- data.frame(
# uci_hombres_00_09 = rioja_uci_porcentaje$hombres[rioja_uci_porcentaje$franja_edad == '0-9 '],
# uci_hombres_10_19 = rioja_uci_porcentaje$hombres[rioja_uci_porcentaje$franja_edad == '10-19 '],
# uci_hombres_20_19 = rioja_uci_porcentaje$hombres[rioja_uci_porcentaje$franja_edad == '20-29 '],
# uci_hombres_30_19 = rioja_uci_porcentaje$hombres[rioja_uci_porcentaje$franja_edad == '30-39 '],
# uci_hombres_40_19 = rioja_uci_porcentaje$hombres[rioja_uci_porcentaje$franja_edad == '40-49 '],
# uci_hombres_50_19 = rioja_uci_porcentaje$hombres[rioja_uci_porcentaje$franja_edad == '50-59 '],
# uci_hombres_60_19 = rioja_uci_porcentaje$hombres[rioja_uci_porcentaje$franja_edad == '60-69 '],
# uci_hombres_70_Mas = rioja_uci_porcentaje$hombres[rioja_uci_porcentaje$franja_edad == '70 y más'],
#
# uci_mujeres_00_09 = rioja_uci_porcentaje$mujeres[rioja_uci_porcentaje$franja_edad == '0-9 '],
# uci_mujeres_10_19 = rioja_uci_porcentaje$mujeres[rioja_uci_porcentaje$franja_edad == '10-19 '],
# uci_mujeres_20_19 = rioja_uci_porcentaje$mujeres[rioja_uci_porcentaje$franja_edad == '20-29 '],
# uci_mujeres_30_19 = rioja_uci_porcentaje$mujeres[rioja_uci_porcentaje$franja_edad == '30-39 '],
# uci_mujeres_40_19 = rioja_uci_porcentaje$mujeres[rioja_uci_porcentaje$franja_edad == '40-49 '],
# uci_mujeres_50_19 = rioja_uci_porcentaje$mujeres[rioja_uci_porcentaje$franja_edad == '50-59 '],
# uci_mujeres_60_19 = rioja_uci_porcentaje$mujeres[rioja_uci_porcentaje$franja_edad == '60-69 '],
# uci_mujeres_70_Mas = rioja_uci_porcentaje$mujeres[rioja_uci_porcentaje$franja_edad == '70 y más'],
uci_hombres_00_09 = rioja_uci_porcentaje$hombres[1],
uci_hombres_10_19 = rioja_uci_porcentaje$hombres[2],
uci_hombres_20_19 = rioja_uci_porcentaje$hombres[3],
uci_hombres_30_19 = rioja_uci_porcentaje$hombres[4],
uci_hombres_40_19 = rioja_uci_porcentaje$hombres[5],
uci_hombres_50_19 = rioja_uci_porcentaje$hombres[6],
uci_hombres_60_19 = rioja_uci_porcentaje$hombres[7],
uci_hombres_70_Mas = rioja_uci_porcentaje$hombres[8],
uci_mujeres_00_09 = rioja_uci_porcentaje$mujeres[1],
uci_mujeres_10_19 = rioja_uci_porcentaje$mujeres[2],
uci_mujeres_20_19 = rioja_uci_porcentaje$mujeres[3],
uci_mujeres_30_19 = rioja_uci_porcentaje$mujeres[4],
uci_mujeres_40_19 = rioja_uci_porcentaje$mujeres[5],
uci_mujeres_50_19 = rioja_uci_porcentaje$mujeres[6],
uci_mujeres_60_19 = rioja_uci_porcentaje$mujeres[7],
uci_mujeres_70_Mas = rioja_uci_porcentaje$mujeres[8],
fecha_publicacion_uci_porcentaje = as.Date(fecha_valores_uci_porcentaje[1], '%d/%m/%Y'),
ultima_actualizacion_uci_porcentaje = as.Date(fecha_valores_uci_porcentaje[2], '%d/%m/%Y'),
ambito_temporal_uci_porcentaje = as.Date(fecha_valores_uci_porcentaje[3], '%d/%m/%Y')
)Guardamos
Añadimos al diario
Porcentaje de fallecidos por grupo de edad y sexo a fecha actual
La página de datos abiertos es esta: https://web.larioja.org/dato-abierto/datoabierto?n=opd-455
page_fallecidos_porcentaje <- read_html('https://web.larioja.org/dato-abierto/datoabierto?n=opd-455')
# find all nodes with a class of "col_md_6"
col_md_6_fallecidos_porcentaje <- html_nodes(page_fallecidos_porcentaje, css = '.col-md-6')
col_md_6_fallecidos_porcentaje## {xml_nodeset (8)}
## [1] <li class="col-md-6"><a href="/participacion"><span class="fas fa-lg fa-u ...
## [2] <li class="col-md-6"><a href="/quejas-y-sugerencias"><span class="fas fa- ...
## [3] <li class="col-md-6"><a href="/suscripciones"><span class="fas fa-lg fa-b ...
## [4] <li class="col-md-6"><a href="/contacto"><span class="fas fa-lg fa-envelo ...
## [5] <li class="col-md-6"><a href="https://www.larioja.org/direcciones-utiles/ ...
## [6] <li class="col-md-6"><a href="https://www.larioja.org/oficina-electronica ...
## [7] <div class="col-md-6">\n <dl>\n<dt>Creador</dt>\n ...
## [8] <div class="col-md-6">\n <dl>\n<dt>Fecha de public ...
fecha_campos_fallecidos_porcentaje <- html_children(col_md_6_fallecidos_porcentaje[8]) %>%
html_nodes("dt") %>%
html_text(trim = TRUE)
fecha_campos_fallecidos_porcentaje## [1] "Fecha de publicación:" "Última actualización:" "Ámbito temporal"
## [4] "Cronología"
fecha_valores_fallecidos_porcentaje <- html_children(col_md_6_fallecidos_porcentaje[8]) %>%
html_nodes("dd") %>%
html_text(trim = TRUE)
fecha_valores_fallecidos_porcentaje## [1] "28/04/2020"
## [2] "11/05/2020"
## [3] "24/02/2020"
## [4] "Fecha de creación: 28/04/2020 Fecha de actualización de los datos: 11/05/2020"
Ahora bajamos el fichero
rioja_fallecidos_porcentaje <- read_delim(link_fallecidos_porcentaje, ",", escape_double = FALSE,
na = c("", "NA", "-"), trim_ws = TRUE)## Warning: Missing column names filled in: 'X4' [4]
## Parsed with column specification:
## cols(
## `Grupo de edad (años)` = col_character(),
## Hombres = col_double(),
## Mujeres = col_double(),
## X4 = col_logical()
## )
Borramos x4
Incorporamos la fecha del dato
rioja_fallecidos_porcentaje$fecha_publicacion_fallecidos_porcentaje = as.Date(fecha_valores_fallecidos_porcentaje[1], '%d/%m/%Y')
rioja_fallecidos_porcentaje$ultima_actualizacion_fallecidos_porcentaje = as.Date(fecha_valores_fallecidos_porcentaje[2], '%d/%m/%Y')
rioja_fallecidos_porcentaje$ambito_temporal_fallecidos_porcentaje = as.Date(fecha_valores_fallecidos_porcentaje[3], '%d/%m/%Y')## franja_edad hombres mujeres
## Length:8 Min. : 0.000 Min. : 0.000
## Class :character 1st Qu.: 0.000 1st Qu.: 0.000
## Mode :character Median : 1.200 Median : 0.300
## Mean :12.500 Mean :12.512
## 3rd Qu.: 5.425 3rd Qu.: 1.925
## Max. :82.900 Max. :94.200
## fecha_publicacion_fallecidos_porcentaje
## Min. :2020-04-28
## 1st Qu.:2020-04-28
## Median :2020-04-28
## Mean :2020-04-28
## 3rd Qu.:2020-04-28
## Max. :2020-04-28
## ultima_actualizacion_fallecidos_porcentaje
## Min. :2020-05-11
## 1st Qu.:2020-05-11
## Median :2020-05-11
## Mean :2020-05-11
## 3rd Qu.:2020-05-11
## Max. :2020-05-11
## ambito_temporal_fallecidos_porcentaje
## Min. :2020-02-24
## 1st Qu.:2020-02-24
## Median :2020-02-24
## Mean :2020-02-24
## 3rd Qu.:2020-02-24
## Max. :2020-02-24
## 'data.frame': 8 obs. of 6 variables:
## $ franja_edad : chr "0-9 " "10-19 " "20-29 " "30-39 " ...
## $ hombres : num 0 0 0 0.6 1.8 3.5 11.2 82.9
## $ mujeres : num 0 0 0 0.6 1.2 0 4.1 94.2
## $ fecha_publicacion_fallecidos_porcentaje : Date, format: "2020-04-28" "2020-04-28" ...
## $ ultima_actualizacion_fallecidos_porcentaje: Date, format: "2020-05-11" "2020-05-11" ...
## $ ambito_temporal_fallecidos_porcentaje : Date, format: "2020-02-24" "2020-02-24" ...
## [1] 100
## [1] 100.1
Revisar que cuadra
# En esta caso es la última línea
diario <- data.frame(
# fallecidos_hombres_00_09 = rioja_fallecidos_porcentaje$hombres[rioja_fallecidos_porcentaje$franja_edad == '0-9 '],
# fallecidos_hombres_10_19 = rioja_fallecidos_porcentaje$hombres[rioja_fallecidos_porcentaje$franja_edad == '10-19 '],
# fallecidos_hombres_20_19 = rioja_fallecidos_porcentaje$hombres[rioja_fallecidos_porcentaje$franja_edad == '20-29 '],
# fallecidos_hombres_30_19 = rioja_fallecidos_porcentaje$hombres[rioja_fallecidos_porcentaje$franja_edad == '30-39 '],
# fallecidos_hombres_40_19 = rioja_fallecidos_porcentaje$hombres[rioja_fallecidos_porcentaje$franja_edad == '40-49 '],
# fallecidos_hombres_50_19 = rioja_fallecidos_porcentaje$hombres[rioja_fallecidos_porcentaje$franja_edad == '50-59 '],
# fallecidos_hombres_60_19 = rioja_fallecidos_porcentaje$hombres[rioja_fallecidos_porcentaje$franja_edad == '60-69 '],
# fallecidos_hombres_70_Mas = rioja_fallecidos_porcentaje$hombres[rioja_fallecidos_porcentaje$franja_edad == '70 y más'],
#
# fallecidos_mujeres_00_09 = rioja_fallecidos_porcentaje$mujeres[rioja_fallecidos_porcentaje$franja_edad == '0-9 '],
# fallecidos_mujeres_10_19 = rioja_fallecidos_porcentaje$mujeres[rioja_fallecidos_porcentaje$franja_edad == '10-19 '],
# fallecidos_mujeres_20_19 = rioja_fallecidos_porcentaje$mujeres[rioja_fallecidos_porcentaje$franja_edad == '20-29 '],
# fallecidos_mujeres_30_19 = rioja_fallecidos_porcentaje$mujeres[rioja_fallecidos_porcentaje$franja_edad == '30-39 '],
# fallecidos_mujeres_40_19 = rioja_fallecidos_porcentaje$mujeres[rioja_fallecidos_porcentaje$franja_edad == '40-49 '],
# fallecidos_mujeres_50_19 = rioja_fallecidos_porcentaje$mujeres[rioja_fallecidos_porcentaje$franja_edad == '50-59 '],
# fallecidos_mujeres_60_19 = rioja_fallecidos_porcentaje$mujeres[rioja_fallecidos_porcentaje$franja_edad == '60-69 '],
# fallecidos_mujeres_70_Mas = rioja_fallecidos_porcentaje$mujeres[rioja_fallecidos_porcentaje$franja_edad == '70 y más'],
fallecidos_hombres_00_09 = rioja_fallecidos_porcentaje$hombres[1],
fallecidos_hombres_10_19 = rioja_fallecidos_porcentaje$hombres[2],
fallecidos_hombres_20_19 = rioja_fallecidos_porcentaje$hombres[3],
fallecidos_hombres_30_19 = rioja_fallecidos_porcentaje$hombres[4],
fallecidos_hombres_40_19 = rioja_fallecidos_porcentaje$hombres[5],
fallecidos_hombres_50_19 = rioja_fallecidos_porcentaje$hombres[6],
fallecidos_hombres_60_19 = rioja_fallecidos_porcentaje$hombres[7],
fallecidos_hombres_70_Mas = rioja_fallecidos_porcentaje$hombres[8],
fallecidos_mujeres_00_09 = rioja_fallecidos_porcentaje$mujeres[1],
fallecidos_mujeres_10_19 = rioja_fallecidos_porcentaje$mujeres[2],
fallecidos_mujeres_20_19 = rioja_fallecidos_porcentaje$mujeres[3],
fallecidos_mujeres_30_19 = rioja_fallecidos_porcentaje$mujeres[4],
fallecidos_mujeres_40_19 = rioja_fallecidos_porcentaje$mujeres[5],
fallecidos_mujeres_50_19 = rioja_fallecidos_porcentaje$mujeres[6],
fallecidos_mujeres_60_19 = rioja_fallecidos_porcentaje$mujeres[7],
fallecidos_mujeres_70_Mas = rioja_fallecidos_porcentaje$mujeres[8],
fecha_publicacion_fallecidos_porcentaje = as.Date(fecha_valores_fallecidos_porcentaje[1], '%d/%m/%Y'),
ultima_actualizacion_fallecidos_porcentaje = as.Date(fecha_valores_fallecidos_porcentaje[2], '%d/%m/%Y'),
ambito_temporal_fallecidos_porcentaje = as.Date(fecha_valores_fallecidos_porcentaje[3], '%d/%m/%Y')
)Guardamos
Añadimos al diario
Porcentaje de casos por grupo de edad y sexo a fecha actual
La página de datos abiertos es esta: https://web.larioja.org/dato-abierto/datoabierto?n=opd-456
page_casos_porcentaje <- read_html('https://web.larioja.org/dato-abierto/datoabierto?n=opd-456')
# find all nodes with a class of "col_md_6"
col_md_6_casos_porcentaje <- html_nodes(page_casos_porcentaje, css = '.col-md-6')
col_md_6_casos_porcentaje## {xml_nodeset (8)}
## [1] <li class="col-md-6"><a href="/participacion"><span class="fas fa-lg fa-u ...
## [2] <li class="col-md-6"><a href="/quejas-y-sugerencias"><span class="fas fa- ...
## [3] <li class="col-md-6"><a href="/suscripciones"><span class="fas fa-lg fa-b ...
## [4] <li class="col-md-6"><a href="/contacto"><span class="fas fa-lg fa-envelo ...
## [5] <li class="col-md-6"><a href="https://www.larioja.org/direcciones-utiles/ ...
## [6] <li class="col-md-6"><a href="https://www.larioja.org/oficina-electronica ...
## [7] <div class="col-md-6">\n <dl>\n<dt>Creador</dt>\n ...
## [8] <div class="col-md-6">\n <dl>\n<dt>Fecha de public ...
fecha_campos_casos_porcentaje <- html_children(col_md_6_casos_porcentaje[8]) %>%
html_nodes("dt") %>%
html_text(trim = TRUE)
fecha_campos_casos_porcentaje## [1] "Fecha de publicación:" "Última actualización:" "Ámbito temporal"
## [4] "Cronología"
fecha_valores_casos_porcentaje <- html_children(col_md_6_casos_porcentaje[8]) %>%
html_nodes("dd") %>%
html_text(trim = TRUE)
fecha_valores_casos_porcentaje## [1] "28/04/2020"
## [2] "11/05/2020"
## [3] "24/02/2020"
## [4] "Fecha de creación: 28/04/2020 Fecha de actualización de los datos: 11/05/2020"
Ahora bajamos el fichero
rioja_casos_porcentaje <- read_delim(link_casos_porcentaje, ",", escape_double = FALSE,
na = c("", "NA", "-"), trim_ws = TRUE)## Warning: Missing column names filled in: 'X4' [4]
## Parsed with column specification:
## cols(
## `Grupo de edad (años)` = col_character(),
## Hombres = col_double(),
## Mujeres = col_double(),
## X4 = col_logical()
## )
Borramos x4
Incorporamos la fecha del dato
rioja_casos_porcentaje$fecha_publicacion_casos_porcentaje = as.Date(fecha_valores_casos_porcentaje[1], '%d/%m/%Y')
rioja_casos_porcentaje$ultima_actualizacion_casos_porcentaje = as.Date(fecha_valores_casos_porcentaje[2], '%d/%m/%Y')
rioja_casos_porcentaje$ambito_temporal_casos_porcentaje = as.Date(fecha_valores_casos_porcentaje[3], '%d/%m/%Y')## franja_edad hombres mujeres
## Length:8 Min. : 0.70 Min. : 0.700
## Class :character 1st Qu.: 4.05 1st Qu.: 5.125
## Mode :character Median :11.20 Median :11.200
## Mean :12.50 Mean :12.525
## 3rd Qu.:16.07 3rd Qu.:16.050
## Max. :37.60 Max. :36.600
## fecha_publicacion_casos_porcentaje ultima_actualizacion_casos_porcentaje
## Min. :2020-04-28 Min. :2020-05-11
## 1st Qu.:2020-04-28 1st Qu.:2020-05-11
## Median :2020-04-28 Median :2020-05-11
## Mean :2020-04-28 Mean :2020-05-11
## 3rd Qu.:2020-04-28 3rd Qu.:2020-05-11
## Max. :2020-04-28 Max. :2020-05-11
## ambito_temporal_casos_porcentaje
## Min. :2020-02-24
## 1st Qu.:2020-02-24
## Median :2020-02-24
## Mean :2020-02-24
## 3rd Qu.:2020-02-24
## Max. :2020-02-24
## 'data.frame': 8 obs. of 6 variables:
## $ franja_edad : chr "0-9 " "10-19 " "20-29 " "30-39 " ...
## $ hombres : num 0.7 1.2 5 9.5 12.9 17.5 15.6 37.6
## $ mujeres : num 0.7 1.3 6.4 10.9 15.7 17.1 11.5 36.6
## $ fecha_publicacion_casos_porcentaje : Date, format: "2020-04-28" "2020-04-28" ...
## $ ultima_actualizacion_casos_porcentaje: Date, format: "2020-05-11" "2020-05-11" ...
## $ ambito_temporal_casos_porcentaje : Date, format: "2020-02-24" "2020-02-24" ...
## [1] 100
## [1] 100.2
Revisar que cuadra
# En esta caso es la última línea
diario <- data.frame(
# casos_hombres_00_09 = rioja_casos_porcentaje$hombres[rioja_casos_porcentaje$franja_edad == '0-9 '],
# casos_hombres_10_19 = rioja_casos_porcentaje$hombres[rioja_casos_porcentaje$franja_edad == '10-19 '],
# casos_hombres_20_19 = rioja_casos_porcentaje$hombres[rioja_casos_porcentaje$franja_edad == '20-29 '],
# casos_hombres_30_19 = rioja_casos_porcentaje$hombres[rioja_casos_porcentaje$franja_edad == '30-39 '],
# casos_hombres_40_19 = rioja_casos_porcentaje$hombres[rioja_casos_porcentaje$franja_edad == '40-49 '],
# casos_hombres_50_19 = rioja_casos_porcentaje$hombres[rioja_casos_porcentaje$franja_edad == '50-59 '],
# casos_hombres_60_19 = rioja_casos_porcentaje$hombres[rioja_casos_porcentaje$franja_edad == '60-69 '],
# casos_hombres_70_Mas = rioja_casos_porcentaje$hombres[rioja_casos_porcentaje$franja_edad == '70 y más'],
#
# casos_mujeres_00_09 = rioja_casos_porcentaje$mujeres[rioja_casos_porcentaje$franja_edad == '0-9 '],
# casos_mujeres_10_19 = rioja_casos_porcentaje$mujeres[rioja_casos_porcentaje$franja_edad == '10-19 '],
# casos_mujeres_20_19 = rioja_casos_porcentaje$mujeres[rioja_casos_porcentaje$franja_edad == '20-29 '],
# casos_mujeres_30_19 = rioja_casos_porcentaje$mujeres[rioja_casos_porcentaje$franja_edad == '30-39 '],
# casos_mujeres_40_19 = rioja_casos_porcentaje$mujeres[rioja_casos_porcentaje$franja_edad == '40-49 '],
# casos_mujeres_50_19 = rioja_casos_porcentaje$mujeres[rioja_casos_porcentaje$franja_edad == '50-59 '],
# casos_mujeres_60_19 = rioja_casos_porcentaje$mujeres[rioja_casos_porcentaje$franja_edad == '60-69 '],
# casos_mujeres_70_Mas = rioja_casos_porcentaje$mujeres[rioja_casos_porcentaje$franja_edad == '70 y más'],
casos_hombres_00_09 = rioja_casos_porcentaje$hombres[1],
casos_hombres_10_19 = rioja_casos_porcentaje$hombres[2],
casos_hombres_20_19 = rioja_casos_porcentaje$hombres[3],
casos_hombres_30_19 = rioja_casos_porcentaje$hombres[4],
casos_hombres_40_19 = rioja_casos_porcentaje$hombres[5],
casos_hombres_50_19 = rioja_casos_porcentaje$hombres[6],
casos_hombres_60_19 = rioja_casos_porcentaje$hombres[7],
casos_hombres_70_Mas = rioja_casos_porcentaje$hombres[8],
casos_mujeres_00_09 = rioja_casos_porcentaje$mujeres[1],
casos_mujeres_10_19 = rioja_casos_porcentaje$mujeres[2],
casos_mujeres_20_19 = rioja_casos_porcentaje$mujeres[3],
casos_mujeres_30_19 = rioja_casos_porcentaje$mujeres[4],
casos_mujeres_40_19 = rioja_casos_porcentaje$mujeres[5],
casos_mujeres_50_19 = rioja_casos_porcentaje$mujeres[6],
casos_mujeres_60_19 = rioja_casos_porcentaje$mujeres[7],
casos_mujeres_70_Mas = rioja_casos_porcentaje$mujeres[8],
fecha_publicacion_casos_porcentaje = as.Date(fecha_valores_casos_porcentaje[1], '%d/%m/%Y'),
ultima_actualizacion_casos_porcentaje = as.Date(fecha_valores_casos_porcentaje[2], '%d/%m/%Y'),
ambito_temporal_casos_porcentaje = as.Date(fecha_valores_casos_porcentaje[3], '%d/%m/%Y')
)Guardamos
Añadimos al diario
Pruebas realizadas en La Rioja (PCR y pruebas rápidas de anticuerpos)
La página de datos abiertos es esta: https://web.larioja.org/dato-abierto/datoabierto?n=opd-462
page_pruebas <- read_html('https://web.larioja.org/dato-abierto/datoabierto?n=opd-462')
# find all nodes with a class of "col_md_6"
col_md_6_pruebas <- html_nodes(page_pruebas, css = '.col-md-6')
col_md_6_pruebas## {xml_nodeset (8)}
## [1] <li class="col-md-6"><a href="/participacion"><span class="fas fa-lg fa-u ...
## [2] <li class="col-md-6"><a href="/quejas-y-sugerencias"><span class="fas fa- ...
## [3] <li class="col-md-6"><a href="/suscripciones"><span class="fas fa-lg fa-b ...
## [4] <li class="col-md-6"><a href="/contacto"><span class="fas fa-lg fa-envelo ...
## [5] <li class="col-md-6"><a href="https://www.larioja.org/direcciones-utiles/ ...
## [6] <li class="col-md-6"><a href="https://www.larioja.org/oficina-electronica ...
## [7] <div class="col-md-6">\n <dl>\n<dt>Creador</dt>\n ...
## [8] <div class="col-md-6">\n <dl>\n<dt>Fecha de public ...
fecha_campos_pruebas <- html_children(col_md_6_pruebas[8]) %>%
html_nodes("dt") %>%
html_text(trim = TRUE)
fecha_campos_pruebas## [1] "Fecha de publicación:" "Última actualización:" "Ámbito temporal"
## [4] "Cronología"
fecha_valores_pruebas <- html_children(col_md_6_pruebas[8]) %>%
html_nodes("dd") %>%
html_text(trim = TRUE)
fecha_valores_pruebas## [1] "29/04/2020"
## [2] "11/05/2020"
## [3] "24/02/2020"
## [4] "Fecha de creación: 28/04/2020 Fecha de actualización de los datos: 11/05/2020"
Ahora bajamos el fichero
rioja_pruebas <- read_delim(link_pruebas, ",", escape_double = FALSE,
na = c("", "NA", "-"), trim_ws = TRUE)## Parsed with column specification:
## cols(
## Pruebas = col_character(),
## `Total de pruebas` = col_double(),
## `Total de pruebas positivas` = col_double(),
## `Porcentaje de pruebas positivas sobre el total` = col_double()
## )
names(rioja_pruebas) <- c("tipo_prueba", "total_pruebas", "pruebas_positivas",
"Porcentaje_pruebas_positivas")Incorporamos la fecha del dato
rioja_pruebas$fecha_publicacion_pruebas = as.Date(fecha_valores_pruebas[1], '%d/%m/%Y')
rioja_pruebas$ultima_actualizacion_pruebas = as.Date(fecha_valores_pruebas[2], '%d/%m/%Y')
rioja_pruebas$ambito_temporal_pruebas = as.Date(fecha_valores_pruebas[3], '%d/%m/%Y')## tipo_prueba total_pruebas pruebas_positivas
## Length:2 Min. :11126 Min. :1419
## Class :character 1st Qu.:13984 1st Qu.:2301
## Mode :character Median :16842 Median :3182
## Mean :16842 Mean :3182
## 3rd Qu.:19700 3rd Qu.:4064
## Max. :22558 Max. :4946
## Porcentaje_pruebas_positivas fecha_publicacion_pruebas
## Min. :12.75 Min. :2020-04-29
## 1st Qu.:15.04 1st Qu.:2020-04-29
## Median :17.34 Median :2020-04-29
## Mean :17.34 Mean :2020-04-29
## 3rd Qu.:19.63 3rd Qu.:2020-04-29
## Max. :21.92 Max. :2020-04-29
## ultima_actualizacion_pruebas ambito_temporal_pruebas
## Min. :2020-05-11 Min. :2020-02-24
## 1st Qu.:2020-05-11 1st Qu.:2020-02-24
## Median :2020-05-11 Median :2020-02-24
## Mean :2020-05-11 Mean :2020-02-24
## 3rd Qu.:2020-05-11 3rd Qu.:2020-02-24
## Max. :2020-05-11 Max. :2020-02-24
Revisar que cuadra
# En esta caso es la última línea
diario <- data.frame(
pcr_realizadas = rioja_pruebas$total_pruebas[1],
pcr_positivos = rioja_pruebas$pruebas_positivas[1],
pruebas_rapidas_anticuerpos = rioja_pruebas$total_pruebas[2],
pruebas_rapidas_positivas = rioja_pruebas$pruebas_positivas[2],
fecha_publicacion_pruebas = as.Date(fecha_valores_pruebas[1], '%d/%m/%Y'),
ultima_actualizacion_pruebas = as.Date(fecha_valores_pruebas[2], '%d/%m/%Y'),
ambito_temporal_pruebas = as.Date(fecha_valores_pruebas[3], '%d/%m/%Y')
)Guardamos
Añadimos al diario
Datos de salidas domiciliarias por día realizadas en La Rioja. Incluye fecha y número de salidas
La página de datos abiertos es esta: https://web.larioja.org/dato-abierto/datoabierto?n=opd-463
page_salidas_domiciliarias <- read_html('https://web.larioja.org/dato-abierto/datoabierto?n=opd-463')
# find all nodes with a class of "col_md_6"
col_md_6_salidas_domiciliarias <- html_nodes(page_salidas_domiciliarias, css = '.col-md-6')
col_md_6_salidas_domiciliarias## {xml_nodeset (8)}
## [1] <li class="col-md-6"><a href="/participacion"><span class="fas fa-lg fa-u ...
## [2] <li class="col-md-6"><a href="/quejas-y-sugerencias"><span class="fas fa- ...
## [3] <li class="col-md-6"><a href="/suscripciones"><span class="fas fa-lg fa-b ...
## [4] <li class="col-md-6"><a href="/contacto"><span class="fas fa-lg fa-envelo ...
## [5] <li class="col-md-6"><a href="https://www.larioja.org/direcciones-utiles/ ...
## [6] <li class="col-md-6"><a href="https://www.larioja.org/oficina-electronica ...
## [7] <div class="col-md-6">\n <dl>\n<dt>Creador</dt>\n ...
## [8] <div class="col-md-6">\n <dl>\n<dt>Fecha de public ...
fecha_campos_salidas_domiciliarias <- html_children(col_md_6_salidas_domiciliarias[8]) %>%
html_nodes("dt") %>%
html_text(trim = TRUE)
fecha_campos_salidas_domiciliarias## [1] "Fecha de publicación:" "Última actualización:" "Ámbito temporal"
## [4] "Cronología"
fecha_valores_salidas_domiciliarias <- html_children(col_md_6_salidas_domiciliarias[8]) %>%
html_nodes("dd") %>%
html_text(trim = TRUE)
fecha_valores_salidas_domiciliarias## [1] "29/04/2020"
## [2] "11/05/2020"
## [3] "24/02/2020"
## [4] "Fecha de creación: 29/04/2020 Fecha de actualización de los datos: 11/05/2020"
Ahora bajamos el fichero
rioja_salidas_domiciliarias <- read_delim(link_salidas_domiciliarias, ",", escape_double = FALSE,
na = c("", "NA", "-"), trim_ws = TRUE)## Parsed with column specification:
## cols(
## FECHA = col_character(),
## `SALIDAS DOMICILIARIAS` = col_double()
## )
Revisar esto
Tienen que coincidir las fechas
Calculamos los acumulados
# Valores diarios
rioja_salidas_domiciliarias$acumulado_salidas_domiciliarias <- 0
for (i in 2:dim(rioja_salidas_domiciliarias)[1]) {
rioja_salidas_domiciliarias$acumulado_salidas_domiciliarias[i] <- rioja_salidas_domiciliarias$acumulado_salidas_domiciliarias[i-1] + rioja_salidas_domiciliarias$salidas_domiciliarias[i]
}Incorporamos la fecha del dato
rioja_salidas_domiciliarias$fecha_publicacion_salidas_domiciliarias = as.Date(fecha_valores_salidas_domiciliarias[1], '%d/%m/%Y')
rioja_salidas_domiciliarias$ultima_actualizacion_salidas_domiciliarias = as.Date(fecha_valores_salidas_domiciliarias[2], '%d/%m/%Y')
rioja_salidas_domiciliarias$ambito_temporal_salidas_domiciliarias = as.Date(fecha_valores_salidas_domiciliarias[3], '%d/%m/%Y')## fecha salidas_domiciliarias acumulado_salidas_domiciliarias
## Min. :20-02-24 Min. : 0.00 Min. : 0
## 1st Qu.:20-03-14 1st Qu.: 23.00 1st Qu.: 878
## Median :20-04-02 Median : 53.00 Median :2398
## Mean :20-04-02 Mean : 51.36 Mean :2148
## 3rd Qu.:20-04-21 3rd Qu.: 76.00 3rd Qu.:3455
## Max. :20-05-10 Max. :139.00 Max. :3955
## fecha_publicacion_salidas_domiciliarias
## Min. :2020-04-29
## 1st Qu.:2020-04-29
## Median :2020-04-29
## Mean :2020-04-29
## 3rd Qu.:2020-04-29
## Max. :2020-04-29
## ultima_actualizacion_salidas_domiciliarias
## Min. :2020-05-11
## 1st Qu.:2020-05-11
## Median :2020-05-11
## Mean :2020-05-11
## 3rd Qu.:2020-05-11
## Max. :2020-05-11
## ambito_temporal_salidas_domiciliarias
## Min. :2020-02-24
## 1st Qu.:2020-02-24
## Median :2020-02-24
## Mean :2020-02-24
## 3rd Qu.:2020-02-24
## Max. :2020-02-24
Guardamos
Datos de autoevaluaciones en el servicio online coronavirus.riojasalud.es realizadas por día en La Rioja. Incluye fecha y número de autoevaluaciones
La página de datos abiertos es esta: https://web.larioja.org/dato-abierto/datoabierto?n=opd-464
page_autoevaluaciones_online <- read_html('https://web.larioja.org/dato-abierto/datoabierto?n=opd-464')
# find all nodes with a class of "col_md_6"
col_md_6_autoevaluaciones_online <- html_nodes(page_autoevaluaciones_online, css = '.col-md-6')
col_md_6_autoevaluaciones_online## {xml_nodeset (8)}
## [1] <li class="col-md-6"><a href="/participacion"><span class="fas fa-lg fa-u ...
## [2] <li class="col-md-6"><a href="/quejas-y-sugerencias"><span class="fas fa- ...
## [3] <li class="col-md-6"><a href="/suscripciones"><span class="fas fa-lg fa-b ...
## [4] <li class="col-md-6"><a href="/contacto"><span class="fas fa-lg fa-envelo ...
## [5] <li class="col-md-6"><a href="https://www.larioja.org/direcciones-utiles/ ...
## [6] <li class="col-md-6"><a href="https://www.larioja.org/oficina-electronica ...
## [7] <div class="col-md-6">\n <dl>\n<dt>Creador</dt>\n ...
## [8] <div class="col-md-6">\n <dl>\n<dt>Fecha de public ...
fecha_campos_autoevaluaciones_online <- html_children(col_md_6_autoevaluaciones_online[8]) %>%
html_nodes("dt") %>%
html_text(trim = TRUE)
fecha_campos_autoevaluaciones_online## [1] "Fecha de publicación:" "Última actualización:" "Ámbito temporal"
## [4] "Cronología"
fecha_valores_autoevaluaciones_online <- html_children(col_md_6_autoevaluaciones_online[8]) %>%
html_nodes("dd") %>%
html_text(trim = TRUE)
fecha_valores_autoevaluaciones_online## [1] "29/04/2020"
## [2] "11/05/2020"
## [3] "01/04/2020"
## [4] "Fecha de creación: 29/04/2020 Fecha de actualización de los datos: 11/05/2020"
Ahora bajamos el fichero
rioja_autoevaluaciones_online <- read_delim(link_autoevaluaciones_online, ",", escape_double = FALSE,
na = c("", "NA", "-"), trim_ws = TRUE)## Parsed with column specification:
## cols(
## FECHA = col_character(),
## AUTOEVALUACIÓN = col_double()
## )
Revisar esto
Tienen que coincidir las fechas
Calculamos los acumulados
# Valores diarios
rioja_autoevaluaciones_online$acumulado_autoevaluaciones_online <- 0
for (i in 2:dim(rioja_autoevaluaciones_online)[1]) {
rioja_autoevaluaciones_online$acumulado_autoevaluaciones_online[i] <- rioja_autoevaluaciones_online$acumulado_autoevaluaciones_online[i-1] + rioja_autoevaluaciones_online$autoevaluaciones_online[i]
}Incorporamos la fecha del dato
rioja_autoevaluaciones_online$fecha_publicacion_autoevaluaciones_online = as.Date(fecha_valores_autoevaluaciones_online[1], '%d/%m/%Y')
rioja_autoevaluaciones_online$ultima_actualizacion_autoevaluaciones_online = as.Date(fecha_valores_autoevaluaciones_online[2], '%d/%m/%Y')
rioja_autoevaluaciones_online$ambito_temporal_autoevaluaciones_online = as.Date(fecha_valores_autoevaluaciones_online[3], '%d/%m/%Y')## fecha autoevaluaciones_online acumulado_autoevaluaciones_online
## Min. :20-04-01 Min. : 1.0 Min. : 0.0
## 1st Qu.:20-04-10 1st Qu.: 7.0 1st Qu.:690.5
## Median :20-04-20 Median : 10.0 Median :812.0
## Mean :20-04-20 Mean : 38.5 Mean :756.7
## 3rd Qu.:20-04-30 3rd Qu.: 18.0 3rd Qu.:900.5
## Max. :20-05-10 Max. :586.0 Max. :954.0
## fecha_publicacion_autoevaluaciones_online
## Min. :2020-04-29
## 1st Qu.:2020-04-29
## Median :2020-04-29
## Mean :2020-04-29
## 3rd Qu.:2020-04-29
## Max. :2020-04-29
## ultima_actualizacion_autoevaluaciones_online
## Min. :2020-05-11
## 1st Qu.:2020-05-11
## Median :2020-05-11
## Mean :2020-05-11
## 3rd Qu.:2020-05-11
## Max. :2020-05-11
## ambito_temporal_autoevaluaciones_online
## Min. :2020-04-01
## 1st Qu.:2020-04-01
## Median :2020-04-01
## Mean :2020-04-01
## 3rd Qu.:2020-04-01
## Max. :2020-04-01
Guardamos
La página de datos abiertos es esta: https://web.larioja.org/dato-abierto/datoabierto?n=opd-457
page_casos_activos_sanitarios <- read_html('https://web.larioja.org/dato-abierto/datoabierto?n=opd-457')
# find all nodes with a class of "col_md_6"
col_md_6_sanitarios <- html_nodes(page_casos_activos_sanitarios, css = '.col-md-6')
col_md_6_sanitarios## {xml_nodeset (8)}
## [1] <li class="col-md-6"><a href="/participacion"><span class="fas fa-lg fa-u ...
## [2] <li class="col-md-6"><a href="/quejas-y-sugerencias"><span class="fas fa- ...
## [3] <li class="col-md-6"><a href="/suscripciones"><span class="fas fa-lg fa-b ...
## [4] <li class="col-md-6"><a href="/contacto"><span class="fas fa-lg fa-envelo ...
## [5] <li class="col-md-6"><a href="https://www.larioja.org/direcciones-utiles/ ...
## [6] <li class="col-md-6"><a href="https://www.larioja.org/oficina-electronica ...
## [7] <div class="col-md-6">\n <dl>\n<dt>Creador</dt>\n ...
## [8] <div class="col-md-6">\n <dl>\n<dt>Fecha de public ...
fecha_campos_sanitarios <- html_children(col_md_6_sanitarios[8]) %>%
html_nodes("dt") %>%
html_text(trim = TRUE)
fecha_campos_sanitarios## [1] "Fecha de publicación:" "Última actualización:" "Ámbito temporal"
## [4] "Cronología"
fecha_valores_sanitarios <- html_children(col_md_6_sanitarios[8]) %>%
html_nodes("dd") %>%
html_text(trim = TRUE)
fecha_valores_sanitarios## [1] "28/04/2020"
## [2] "11/05/2020"
## [3] "24/02/2020"
## [4] "Fecha de creación: 28/04/2020 Fecha de actualización de los datos: 11/05/2020"
Ahora bajamos el fichero
## Parsed with column specification:
## cols(
## `Categoría laboral` = col_character(),
## `Casos confirmados` = col_double(),
## Altas = col_double(),
## `Casos acumulados` = col_double()
## )
names(rioja_personal_sanitario) <- c("sanitarios_categoria_laboral",
"sanitarios_casos_activos",
"sanitarios_altas",
"sanitarios_casos_acumulados")## [1] 0
Incorporamos la fecha del dato
rioja_personal_sanitario$fecha_publicacion_sanitarios = as.Date(fecha_valores_sanitarios[1], '%d/%m/%Y')
rioja_personal_sanitario$ultima_actualizacion_sanitarios = as.Date(fecha_valores_sanitarios[2], '%d/%m/%Y')
rioja_personal_sanitario$ambito_temporal_sanitarios = as.Date(fecha_valores_sanitarios[3], '%d/%m/%Y')## sanitarios_categoria_laboral sanitarios_casos_activos sanitarios_altas
## Length:7 Min. : 3.00 Min. : 18.00
## Class :character 1st Qu.: 6.00 1st Qu.: 21.00
## Mode :character Median :13.00 Median : 51.00
## Mean :18.29 Mean : 79.14
## 3rd Qu.:18.00 3rd Qu.: 83.00
## Max. :64.00 Max. :277.00
## sanitarios_casos_acumulados fecha_publicacion_sanitarios
## Min. : 23.00 Min. :2020-04-28
## 1st Qu.: 26.00 1st Qu.:2020-04-28
## Median : 71.00 Median :2020-04-28
## Mean : 97.43 Mean :2020-04-28
## 3rd Qu.: 97.50 3rd Qu.:2020-04-28
## Max. :341.00 Max. :2020-04-28
## ultima_actualizacion_sanitarios ambito_temporal_sanitarios
## Min. :2020-05-11 Min. :2020-02-24
## 1st Qu.:2020-05-11 1st Qu.:2020-02-24
## Median :2020-05-11 Median :2020-02-24
## Mean :2020-05-11 Mean :2020-02-24
## 3rd Qu.:2020-05-11 3rd Qu.:2020-02-24
## Max. :2020-05-11 Max. :2020-02-24
Revisar que cuadra
diario <- data.frame(sanitarios_casos_activos_diario = rioja_personal_sanitario$sanitarios_casos_activos[rioja_personal_sanitario$sanitarios_categoria_laboral == 'Total'],
sanitarios_casos_activos_altas = rioja_personal_sanitario$sanitarios_altas[rioja_personal_sanitario$sanitarios_categoria_laboral == 'Total'],
sanitarios_casos_activos_acumulado = rioja_personal_sanitario$sanitarios_casos_acumulados[rioja_personal_sanitario$sanitarios_categoria_laboral == 'Total'],
fecha_publicacion_sanitarios = as.Date(fecha_valores_sanitarios[1], '%d/%m/%Y'),
ultima_actualizacion_sanitarios = as.Date(fecha_valores_sanitarios[2], '%d/%m/%Y'),
ambito_temporal_sanitarios = as.Date(fecha_valores_sanitarios[3], '%d/%m/%Y')
)Sólo pongo los totales. Los datos son semanales
Guardamos
Añadimos al diario
La página de datos abiertos es esta: https://web.larioja.org/dato-abierto/datoabierto?n=opd-458
page_casos_activos_fallecidos <- read_html('https://web.larioja.org/dato-abierto/datoabierto?n=opd-458')
# find all nodes with a class of "col_md_6"
col_md_6_fallecidos <- html_nodes(page_casos_activos_fallecidos, css = '.col-md-6')
col_md_6_fallecidos## {xml_nodeset (8)}
## [1] <li class="col-md-6"><a href="/participacion"><span class="fas fa-lg fa-u ...
## [2] <li class="col-md-6"><a href="/quejas-y-sugerencias"><span class="fas fa- ...
## [3] <li class="col-md-6"><a href="/suscripciones"><span class="fas fa-lg fa-b ...
## [4] <li class="col-md-6"><a href="/contacto"><span class="fas fa-lg fa-envelo ...
## [5] <li class="col-md-6"><a href="https://www.larioja.org/direcciones-utiles/ ...
## [6] <li class="col-md-6"><a href="https://www.larioja.org/oficina-electronica ...
## [7] <div class="col-md-6">\n <dl>\n<dt>Creador</dt>\n ...
## [8] <div class="col-md-6">\n <dl>\n<dt>Fecha de public ...
fecha_campos_fallecidos <- html_children(col_md_6_fallecidos[8]) %>%
html_nodes("dt") %>%
html_text(trim = TRUE)
fecha_campos_fallecidos## [1] "Fecha de publicación:" "Última actualización:" "Ámbito temporal"
## [4] "Cronología"
fecha_valores_fallecidos <- html_children(col_md_6_fallecidos[8]) %>%
html_nodes("dd") %>%
html_text(trim = TRUE)
fecha_valores_fallecidos## [1] "28/04/2020"
## [2] "11/05/2020"
## [3] "09/03/2020"
## [4] "Fecha de creación: 28/04/2020 Fecha de actualización de los datos: 11/05/2020"
Ahora bajamos el fichero
## Parsed with column specification:
## cols(
## FECHA = col_character(),
## TOTALES = col_double(),
## RESIDENCIAS = col_double()
## )
Revisar esto
Tienen que coincidir las fechas
Calculamos los acumulados
# Valores diarios
rioja_fallecidos$acumulado_fallecidos_totales <- rioja_fallecidos$fallecidos_totales[1]
rioja_fallecidos$acumulado_fallecidos_residencias <- rioja_fallecidos$fallecidos_residencias[1]
for (i in 2:dim(rioja_fallecidos)[1]) {
rioja_fallecidos$acumulado_fallecidos_totales[i] <- rioja_fallecidos$acumulado_fallecidos_totales[i-1] + rioja_fallecidos$fallecidos_totales[i]
rioja_fallecidos$acumulado_fallecidos_residencias[i] <- rioja_fallecidos$acumulado_fallecidos_residencias[i-1] + rioja_fallecidos$fallecidos_residencias[i]
}Incorporamos la fecha del dato
rioja_fallecidos$fecha_publicacion_fallecidos = as.Date(fecha_valores_fallecidos[1], '%d/%m/%Y')
rioja_fallecidos$ultima_actualizacion_fallecidos = as.Date(fecha_valores_fallecidos[2], '%d/%m/%Y')
rioja_fallecidos$ambito_temporal_fallecidos = as.Date(fecha_valores_fallecidos[3], '%d/%m/%Y')## fecha fallecidos_totales fallecidos_residencias
## Min. :2020-03-09 Min. : 0.000 Min. : 0.000
## 1st Qu.:2020-03-24 1st Qu.: 1.000 1st Qu.: 0.000
## Median :2020-04-09 Median : 4.000 Median : 2.000
## Mean :2020-04-09 Mean : 5.492 Mean : 3.143
## 3rd Qu.:2020-04-24 3rd Qu.: 8.000 3rd Qu.: 4.500
## Max. :2020-05-10 Max. :19.000 Max. :14.000
## NA's :96 NA's :96 NA's :96
## acumulado_fallecidos_totales acumulado_fallecidos_residencias
## Min. : 1.0 Min. : 0.00
## 1st Qu.: 40.0 1st Qu.: 8.00
## Median :196.0 Median : 99.00
## Mean :179.5 Mean : 94.59
## 3rd Qu.:313.0 3rd Qu.:176.50
## Max. :346.0 Max. :198.00
## NA's :96 NA's :96
## fecha_publicacion_fallecidos ultima_actualizacion_fallecidos
## Min. :2020-04-28 Min. :2020-05-11
## 1st Qu.:2020-04-28 1st Qu.:2020-05-11
## Median :2020-04-28 Median :2020-05-11
## Mean :2020-04-28 Mean :2020-05-11
## 3rd Qu.:2020-04-28 3rd Qu.:2020-05-11
## Max. :2020-04-28 Max. :2020-05-11
##
## ambito_temporal_fallecidos
## Min. :2020-03-09
## 1st Qu.:2020-03-09
## Median :2020-03-09
## Mean :2020-03-09
## 3rd Qu.:2020-03-09
## Max. :2020-03-09
##
Guardamos
# Change the width of bars
ggplot(data = rioja_fallecidos, aes(x = fecha, y = acumulado_fallecidos_totales)) +
geom_bar(stat = "identity", fill = "steelblue") +
geom_text(aes(label = acumulado_fallecidos_totales), vjust = -0.3, size = 1.5)+
theme_minimal()# Change the width of bars
ggplot(data = rioja_fallecidos, aes(x = fecha, y = fallecidos_totales)) +
geom_bar(stat = "identity", fill = "steelblue") +
geom_text(aes(label = fallecidos_totales), vjust = -0.3, size = 1.5)+
theme_minimal()# Change the width of bars
ggplot(data = rioja_fallecidos, aes(x = fecha, y = acumulado_fallecidos_residencias)) +
geom_bar(stat = "identity", fill = "steelblue") +
geom_text(aes(label = acumulado_fallecidos_totales), vjust = -0.3, size = 1.5)+
theme_minimal()# Change the width of bars
ggplot(data = rioja_fallecidos, aes(x = fecha, y = fallecidos_residencias)) +
geom_bar(stat = "identity", fill = "steelblue") +
geom_text(aes(label = fallecidos_totales), vjust = -0.3, size = 1.5)+
theme_minimal()La página de datos abiertos es esta: https://web.larioja.org/dato-abierto/datoabierto?n=opd-465
page_llamadas <- read_html('https://web.larioja.org/dato-abierto/datoabierto?n=opd-465')
# find all nodes with a class of "col_md_6"
col_md_6_llamadas <- html_nodes(page_llamadas, css = '.col-md-6')
col_md_6_llamadas## {xml_nodeset (8)}
## [1] <li class="col-md-6"><a href="/participacion"><span class="fas fa-lg fa-u ...
## [2] <li class="col-md-6"><a href="/quejas-y-sugerencias"><span class="fas fa- ...
## [3] <li class="col-md-6"><a href="/suscripciones"><span class="fas fa-lg fa-b ...
## [4] <li class="col-md-6"><a href="/contacto"><span class="fas fa-lg fa-envelo ...
## [5] <li class="col-md-6"><a href="https://www.larioja.org/direcciones-utiles/ ...
## [6] <li class="col-md-6"><a href="https://www.larioja.org/oficina-electronica ...
## [7] <div class="col-md-6">\n <dl>\n<dt>Creador</dt>\n ...
## [8] <div class="col-md-6">\n <dl>\n<dt>Fecha de public ...
fecha_campos_llamadas <- html_children(col_md_6_llamadas[8]) %>%
html_nodes("dt") %>%
html_text(trim = TRUE)
fecha_campos_llamadas## [1] "Fecha de publicación:" "Última actualización:" "Ámbito temporal"
## [4] "Cronología"
fecha_valores_llamadas <- html_children(col_md_6_llamadas[8]) %>%
html_nodes("dd") %>%
html_text(trim = TRUE)
fecha_valores_llamadas## [1] "29/04/2020"
## [2] "11/05/2020"
## [3] "24/02/2020"
## [4] "Fecha de creación: 29/04/2020 Fecha de actualización de los datos: 11/05/2020"
Ahora bajamos el fichero
## Parsed with column specification:
## cols(
## FECHA = col_character(),
## LLAMADAS = col_double()
## )
Revisar esto
Tienen que coincidir las fechas
Calculamos los acumulados
# Valores diarios
rioja_llamadas$acumulado_llamadas <- 0
for (i in 2:dim(rioja_llamadas)[1]) {
rioja_llamadas$acumulado_llamadas[i] <- rioja_llamadas$acumulado_llamadas[i-1] + rioja_llamadas$llamadas[i]
}Incorporamos la fecha del dato
rioja_llamadas$fecha_publicacion_llamadas = as.Date(fecha_valores_llamadas[1], '%d/%m/%Y')
rioja_llamadas$ultima_actualizacion_llamadas = as.Date(fecha_valores_llamadas[2], '%d/%m/%Y')
rioja_llamadas$ambito_temporal_llamadas = as.Date(fecha_valores_llamadas[3], '%d/%m/%Y')## fecha llamadas acumulado_llamadas
## Min. :2020-02-24 Min. : 0.0 Min. : 0
## 1st Qu.:2020-03-14 1st Qu.:137.0 1st Qu.: 4683
## Median :2020-04-02 Median :186.0 Median :13597
## Mean :2020-04-02 Mean :253.5 Mean :11327
## 3rd Qu.:2020-04-21 3rd Qu.:353.0 3rd Qu.:17159
## Max. :2020-05-10 Max. :873.0 Max. :19518
## fecha_publicacion_llamadas ultima_actualizacion_llamadas
## Min. :2020-04-29 Min. :2020-05-11
## 1st Qu.:2020-04-29 1st Qu.:2020-05-11
## Median :2020-04-29 Median :2020-05-11
## Mean :2020-04-29 Mean :2020-05-11
## 3rd Qu.:2020-04-29 3rd Qu.:2020-05-11
## Max. :2020-04-29 Max. :2020-05-11
## ambito_temporal_llamadas
## Min. :2020-02-24
## 1st Qu.:2020-02-24
## Median :2020-02-24
## Mean :2020-02-24
## 3rd Qu.:2020-02-24
## Max. :2020-02-24
Guardamos
La página de datos abiertos es esta: https://web.larioja.org/dato-abierto/datoabierto?n=opd-466
page_ritmo_reproduccion_r0 <- read_html('https://web.larioja.org/dato-abierto/datoabierto?n=opd-466')
# find all nodes with a class of "col_md_6"
col_md_6_ritmo_reproduccion_r0 <- html_nodes(page_ritmo_reproduccion_r0 , css = '.col-md-6')
col_md_6_ritmo_reproduccion_r0## {xml_nodeset (8)}
## [1] <li class="col-md-6"><a href="/participacion"><span class="fas fa-lg fa-u ...
## [2] <li class="col-md-6"><a href="/quejas-y-sugerencias"><span class="fas fa- ...
## [3] <li class="col-md-6"><a href="/suscripciones"><span class="fas fa-lg fa-b ...
## [4] <li class="col-md-6"><a href="/contacto"><span class="fas fa-lg fa-envelo ...
## [5] <li class="col-md-6"><a href="https://www.larioja.org/direcciones-utiles/ ...
## [6] <li class="col-md-6"><a href="https://www.larioja.org/oficina-electronica ...
## [7] <div class="col-md-6">\n <dl>\n<dt>Creador</dt>\n ...
## [8] <div class="col-md-6">\n <dl>\n<dt>Fecha de public ...
fecha_campos_ritmo_reproduccion_r0 <- html_children(col_md_6_ritmo_reproduccion_r0[8]) %>%
html_nodes("dt") %>%
html_text(trim = TRUE)
fecha_campos_ritmo_reproduccion_r0## [1] "Fecha de publicación:" "Última actualización:" "Ámbito temporal"
## [4] "Cronología"
fecha_valores_ritmo_reproduccion_r0 <- html_children(col_md_6_ritmo_reproduccion_r0[8]) %>%
html_nodes("dd") %>%
html_text(trim = TRUE)
fecha_valores_ritmo_reproduccion_r0## [1] "04/05/2020"
## [2] "11/05/2020"
## [3] "08/03/2020"
## [4] "Fecha de creación: 04/05/2020 Fecha de actualización de los datos: 11/05/2020"
Ahora bajamos el fichero
## Warning: Missing column names filled in: 'X3' [3]
## Parsed with column specification:
## cols(
## fecha = col_character(),
## R0 = col_double(),
## X3 = col_logical()
## )
Borramos x3
Revisar esto
Tienen que coincidir las fechas
Calculamos los acumulados
# Valores diarios
rioja_ritmo_reproduccion_r0$acumulado_ritmo_reproduccion_r0 <- 0
for (i in 2:dim(rioja_ritmo_reproduccion_r0)[1]) {
rioja_ritmo_reproduccion_r0$acumulado_ritmo_reproduccion_r0[i] <- rioja_ritmo_reproduccion_r0$acumulado_ritmo_reproduccion_r0[i-1] + rioja_ritmo_reproduccion_r0$ritmo_reproduccion_r0[i]
}Incorporamos la fecha del dato
rioja_ritmo_reproduccion_r0$fecha_publicacion_ritmo_reproduccion_r0 = as.Date(fecha_valores_ritmo_reproduccion_r0[1], '%d/%m/%Y')
rioja_ritmo_reproduccion_r0$ultima_actualizacion_ritmo_reproduccion_r0 = as.Date(fecha_valores_ritmo_reproduccion_r0[2], '%d/%m/%Y')
rioja_ritmo_reproduccion_r0$ambito_temporal_ritmo_reproduccion_r0 = as.Date(fecha_valores_ritmo_reproduccion_r0[3], '%d/%m/%Y')## fecha r0 x3
## Min. :2020-03-08 Min. :0.410 Mode:logical
## 1st Qu.:2020-03-23 1st Qu.:0.720 NA's:64
## Median :2020-04-08 Median :0.935
## Mean :2020-04-08 Mean :1.156
## 3rd Qu.:2020-04-24 3rd Qu.:1.337
## Max. :2020-05-10 Max. :4.240
## fecha_publicacion_ritmo_reproduccion_r0
## Min. :2020-05-04
## 1st Qu.:2020-05-04
## Median :2020-05-04
## Mean :2020-05-04
## 3rd Qu.:2020-05-04
## Max. :2020-05-04
## ultima_actualizacion_ritmo_reproduccion_r0
## Min. :2020-05-11
## 1st Qu.:2020-05-11
## Median :2020-05-11
## Mean :2020-05-11
## 3rd Qu.:2020-05-11
## Max. :2020-05-11
## ambito_temporal_ritmo_reproduccion_r0
## Min. :2020-03-08
## 1st Qu.:2020-03-08
## Median :2020-03-08
## Mean :2020-03-08
## 3rd Qu.:2020-03-08
## Max. :2020-03-08
Guardamos
La página de datos abiertos es esta: https://web.larioja.org/dato-abierto/datoabierto?n=opd-460
page_casos_activos_zonas_basicas <- read_html('https://web.larioja.org/dato-abierto/datoabierto?n=opd-460')
# find all nodes with a class of "col_md_6"
col_md_6_zonas <- html_nodes(page_casos_activos_zonas_basicas, css = '.col-md-6')
col_md_6_zonas## {xml_nodeset (8)}
## [1] <li class="col-md-6"><a href="/participacion"><span class="fas fa-lg fa-u ...
## [2] <li class="col-md-6"><a href="/quejas-y-sugerencias"><span class="fas fa- ...
## [3] <li class="col-md-6"><a href="/suscripciones"><span class="fas fa-lg fa-b ...
## [4] <li class="col-md-6"><a href="/contacto"><span class="fas fa-lg fa-envelo ...
## [5] <li class="col-md-6"><a href="https://www.larioja.org/direcciones-utiles/ ...
## [6] <li class="col-md-6"><a href="https://www.larioja.org/oficina-electronica ...
## [7] <div class="col-md-6">\n <dl>\n<dt>Creador</dt>\n ...
## [8] <div class="col-md-6">\n <dl>\n<dt>Fecha de public ...
fecha_campos_zonas <- html_children(col_md_6_zonas[8]) %>%
html_nodes("dt") %>%
html_text(trim = TRUE)
fecha_campos_zonas## [1] "Fecha de publicación:" "Última actualización:" "Ámbito temporal"
## [4] "Cronología"
fecha_valores_zonas <- html_children(col_md_6_zonas[8]) %>%
html_nodes("dd") %>%
html_text(trim = TRUE)
fecha_valores_zonas## [1] "28/04/2020"
## [2] "11/05/2020"
## [3] "24/02/2020"
## [4] "Fecha de creación: 28/04/2020 Fecha de actualización de los datos: 11/05/2020"
Ahora bajamos el fichero
rioja_casos_activos_zonas_basicas <- read_delim(link_casos_activos_zonas_basicas,
";", escape_double = FALSE, trim_ws = TRUE)## Parsed with column specification:
## cols(
## Lat = col_double(),
## Lon = col_double(),
## Title = col_character(),
## NOMBRE = col_character(),
## `CASOS ACTIVOS` = col_double()
## )
names(rioja_casos_activos_zonas_basicas) <- c("latitud", "longitud", "localidad",
"nombre_zbs", "casos_activos")Incorporamos la fecha del dato
rioja_casos_activos_zonas_basicas$fecha_publicacion_zonas = as.Date(fecha_valores_zonas[1], '%d/%m/%Y')
rioja_casos_activos_zonas_basicas$ultima_actualizacion_zonas = as.Date(fecha_valores_zonas[2], '%d/%m/%Y')
rioja_casos_activos_zonas_basicas$ambito_temporal_zonas = as.Date(fecha_valores_zonas[3], '%d/%m/%Y')## [1] 3279
Revisar que cuadra
Pasamos a incorporar los datos diarios
diario <- data.frame(casos_activos_aberite = rioja_casos_activos_zonas_basicas$casos_activos[rioja_casos_activos_zonas_basicas$localidad == 'Alberite'],
casos_activos_alfaro = rioja_casos_activos_zonas_basicas$casos_activos[rioja_casos_activos_zonas_basicas$localidad == 'Alfaro'],
casos_activos_arnedo = rioja_casos_activos_zonas_basicas$casos_activos[rioja_casos_activos_zonas_basicas$localidad == 'Arnedo'],
casos_activos_calahorra = rioja_casos_activos_zonas_basicas$casos_activos[rioja_casos_activos_zonas_basicas$localidad == 'Calahorra'],
casos_activos_cervera = rioja_casos_activos_zonas_basicas$casos_activos[rioja_casos_activos_zonas_basicas$localidad == 'Cervera del Río Alhama'],
casos_activos_haro = rioja_casos_activos_zonas_basicas$casos_activos[rioja_casos_activos_zonas_basicas$localidad == 'Haro'],
casos_activos_logrono = rioja_casos_activos_zonas_basicas$casos_activos[rioja_casos_activos_zonas_basicas$localidad == 'Logroño'],
casos_activos_murillo = rioja_casos_activos_zonas_basicas$casos_activos[rioja_casos_activos_zonas_basicas$localidad == 'Murillo del Río Leza'],
casos_activos_najera = rioja_casos_activos_zonas_basicas$casos_activos[rioja_casos_activos_zonas_basicas$localidad == 'Nájera'],
casos_activos_navarrete = rioja_casos_activos_zonas_basicas$casos_activos[rioja_casos_activos_zonas_basicas$localidad == 'Navarrete'],
casos_activos_san_roman = rioja_casos_activos_zonas_basicas$casos_activos[rioja_casos_activos_zonas_basicas$localidad == 'San Román de Cameros'],
casos_activos_s_domingo = rioja_casos_activos_zonas_basicas$casos_activos[rioja_casos_activos_zonas_basicas$localidad == 'Santo Domingo de la Calzada'],
casos_activos_torrecilla = rioja_casos_activos_zonas_basicas$casos_activos[rioja_casos_activos_zonas_basicas$localidad == 'Torrecilla en Cameros'],
fecha_publicacion_zonas = as.Date(fecha_valores_zonas[1], '%d/%m/%Y'),
ultima_actualizacion_zonas = as.Date(fecha_valores_zonas[2], '%d/%m/%Y'),
ambito_temporal_zonas = as.Date(fecha_valores_zonas[3], '%d/%m/%Y')
)Guardamos
Hacemos un mapa
Le asigno un CRS “a capón”, el de OSM
rioja_casos_activos_zonas_basicas_shp <- sf::st_as_sf(as.data.frame(rioja_casos_activos_zonas_basicas),
coords = c('longitud', 'latitud'),
crs = 4326)# tmap object
mapa_casos_activos_zonas_basicas <- tm_shape(rioja_casos_activos_zonas_basicas_shp) +
tm_dots("casos_activos")
# dynamic map
tmap_leaflet(mapa_casos_activos_zonas_basicas)# cat(getwd())
rioja_zonas_basicas_shp <- sf::read_sf('./data/maps/ZBS_4258_LARIOJA_ESPAÑA_2017_v1.0.0/laRioja4258.shp',
stringsAsFactors = TRUE)Para poder hacer merge, creamos la variable localidad
rioja_zonas_basicas_shp$localidad <- rioja_zonas_basicas_shp$n_zbs
levels(rioja_zonas_basicas_shp$localidad) <- c("Alberite", "Alfaro", "Arnedo",
"Calahorra", "Torrecilla en Cameros",
"San Román de Cameros",
"Cervera del Río Alhama", "Haro",
"Logroño", "Murillo del Río Leza",
"Nájera", "Navarrete" ,
"Santo Domingo de la Calzada")## codatzbs n_zbs geometry
## Min. :130101 Alberite - Albelda de Iregua :1 MULTIPOLYGON :13
## 1st Qu.:130104 Alfaro :1 epsg:4258 : 0
## Median :130107 Arnedo :1 +proj=long...: 0
## Mean :130107 Calahorra :1
## 3rd Qu.:130110 Cameros Nuevos (Torrecilla en Cameros):1
## Max. :130113 Cameros Viejos (San Román de Cameros) :1
## (Other) :7
## localidad
## Alberite :1
## Alfaro :1
## Arnedo :1
## Calahorra :1
## Torrecilla en Cameros:1
## San Román de Cameros :1
## (Other) :7
# Este mapa no parece bien...
# tmap object
mapa_casos_activos_zonas_basicas2 <-
tm_shape(rioja_zonas_basicas_shp) +
tm_polygons(id = "localidad",
# col = "numberOfFloorsAboveGround",
border.col = "blue",
# palette = col.spec.fun(15),
alpha = 0.5,
legend.show = FALSE,
textNA = "Sin datos",
title = "Localidad") +
# tm_shape(rioja_casos_activos_zonas_basicas_shp) +
# tm_dots("casos_activos")
tm_shape(rioja_casos_activos_zonas_basicas_shp) +
tm_dots(# id = "localidad",
title = "casos activos",
size = "casos_activos",
id = "casos_activos"
)
# dynamic map
tmap_leaflet(mapa_casos_activos_zonas_basicas2)Guardamos el resumen diario
Datos globales de la pandemia de coronavirus: tasa de letalidad; tasa de hospitalización (casos activos y casos acumulados); y porcentaje de altas acumuladas
La página de datos abiertos es esta: https://web.larioja.org/dato-abierto/datoabierto?n=opd-459
Los datos de (ISCIII)[https://covid19.isciii.es/]
link_isciii <- 'https://covid19.isciii.es/resources/serie_historica_acumulados.csv'
link_isciii <- 'https://cnecovid.isciii.es/covid19/resources/agregados.csv'En los datos en local se han eliminado las últimas filas que corresponden a comentarios.
# Datos en local
serie_historica_acumulados_isciii <- read_csv("data/serie_historica_acumulados.csv",
locale = locale(date_names = "es"))# Directamente de Internet
serie_historica_acumulados_isciii <- read_csv(link_isciii,
locale = locale(date_names = "es"))## Parsed with column specification:
## cols(
## CCAA = col_character(),
## FECHA = col_character(),
## CASOS = col_double(),
## `PCR+` = col_double(),
## `TestAc+` = col_double(),
## Hospitalizados = col_double(),
## UCI = col_double(),
## Fallecidos = col_double(),
## Recuperados = col_double()
## )
## Warning: 1 parsing failure.
## row col expected actual file
## 1548 -- 9 columns 1 columns 'https://cnecovid.isciii.es/covid19/resources/agregados.csv'
El csv incluye comentarios al final, vamos a quitarlos
# Donde aparece por primera vez 'NOTA'
ultima_linea <- min((1:dim(serie_historica_acumulados_isciii)[1])[str_detect(serie_historica_acumulados_isciii$CCAA, 'NOTA')])
ultima_linea## [1] 1540
Vemos los datos por CC.AA.
##
## AN AR AS CB CE CL CM CN CT EX GA IB MC MD ML NC PV RI VC
## 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81
Comunidades autónomas
serie_historica_acumulados_isciii$CCAA <- factor(serie_historica_acumulados_isciii$CCAA,
levels = c('AN', 'AR', 'AS', 'CB', 'CE',
'CL', 'CM', 'CN', 'CT', 'EX',
'GA', 'IB', 'MC', 'MD', 'ML',
'NC', 'PV', 'RI', 'VC'),
labels = c('Andalucía', 'Aragón',
'Asturias, Principado de',
'Cantabria', 'Ceuta',
'Castilla y León',
'Castilla - La Mancha',
'Canarias', 'Cantabria',
'Extremadura',
'Galicia', 'Balears, Illes',
'Murcia, Región de',
'Madrid, Comunidad de',
'Melilla',
'Navarra, Comunidad Foral de',
'País Vasco', 'Rioja, La',
'Comunitat Valenciana'))Pasamos la fecha a formato Date
# Valores diarios
serie_historica_acumulados_isciii <- serie_historica_acumulados_isciii %>%
group_by(CCAA) %>%
arrange(FECHA) %>%
mutate(diario_hospitalizados = Hospitalizados - lag(Hospitalizados, order_by = FECHA),
diario_uci = UCI - lag(UCI, order_by = FECHA),
diario_fallecidos = Fallecidos - lag(Fallecidos, order_by = FECHA)
# diario_recuperados = Recuperados - lag(Recuperados) # Este es acumulado
)Cantabria está duplicado
Revisar
## CCAA FECHA CASOS
## Cantabria :162 Min. :2020-02-20 Min. :0
## Andalucía : 81 1st Qu.:2020-03-11 1st Qu.:0
## Aragón : 81 Median :2020-03-31 Median :0
## Asturias, Principado de: 81 Mean :2020-03-31 Mean :0
## Ceuta : 81 3rd Qu.:2020-04-20 3rd Qu.:0
## Castilla y León : 81 Max. :2020-05-10 Max. :0
## (Other) :972 NA's :1538
## PCR+ TestAc+ Hospitalizados UCI
## Min. : 0 Min. : 0.0 Min. : 0.0 Min. : 0
## 1st Qu.: 37 1st Qu.: 106.2 1st Qu.: 195.5 1st Qu.: 17
## Median : 1456 Median : 688.5 Median : 1047.0 Median : 108
## Mean : 5592 Mean :1194.1 Mean : 3302.3 Mean : 317
## 3rd Qu.: 4994 3rd Qu.:1470.5 3rd Qu.: 3321.0 3rd Qu.: 324
## Max. :64853 Max. :7482.0 Max. :41650.0 Max. :3529
## NA's :1041 NA's :340 NA's :306
## Fallecidos Recuperados diario_hospitalizados diario_uci
## Min. : 0.0 Min. : 0 Min. :-27757.0 Min. :-2912.000
## 1st Qu.: 11.0 1st Qu.: 25 1st Qu.: 2.0 1st Qu.: 0.000
## Median : 155.5 Median : 622 Median : 23.0 Median : 1.000
## Mean : 716.0 Mean : 2905 Mean : 103.1 Mean : 9.215
## 3rd Qu.: 635.5 3rd Qu.: 2291 3rd Qu.: 65.0 3rd Qu.: 6.000
## Max. :8683.0 Max. :39604 Max. : 33580.0 Max. : 2916.000
## NA's :323 NA's :342 NA's :359 NA's :324
## diario_fallecidos
## Min. :-5331.00
## 1st Qu.: 1.00
## Median : 6.00
## Mean : 22.13
## 3rd Qu.: 23.00
## Max. : 5354.00
## NA's :341
Guardamos
Los modelos MoMo del ISCIII.
Los datos están disponibles aquí en formato CSV, y se actualizan diariamente. Son las series temporales con los resultados de MoMo para ámbito nacional y de comunidades autónomas, en diferentes grupos poblacionales, durante los últimos dos años. Consta de las siguientes columnas:
ambito: nacional o ccaa
cod_ambito: si es nacional, viene vacío. Si es una comunidad autónoma, trae su código ISO 3166-2.
cod_ine_ambito: columna informativa sobre la comunidad autónoma, si aplica. Es su código INE.
nombre_ambito: columna informativa sobre la comunidad autónoma, si aplica. Es su nombre.
cod_sexo: código INE del sexo. 1 para hombres, 6 para mujeres.
nombre_sexo: columna informativa sobre el sexo. Su nombre descriptivo (hombres, mujeres).
cod_gedad: código del grupo de edad. Los posibles son: menos_65, 65_74, mas_74.
nombre_gedad: columna informativa sobre el grupo de edad. Su nombre descriptivo (p.e. edad < 65).
fecha_defuncion: la fecha a la que se refieren los indicadores descritos de aquí en adelante. Es la fecha en la que ocurre la defunción.
defunciones_observadas: el número de defunciones observadas (incluye la corrección por retraso).
defunciones_observadas_lim_inf: el límite inferior del invervalo de confianza de las defunciones observadas (debido a la corrección).
defunciones_observadas_lim_sup: de forma equivalente, el límite superior.
defunciones_esperadas: el número de defunciones esperadas, resultantes del modelo.
defunciones_esperadas_q01: el límite inferior del intervalo de confianza de las defunciones esperadas, correspondiente al percentil 1 de la distribución.
defunciones_esperadas_q99: de forma equivalente, el límite superior, al percentil 99.
Las series vienen agregadas por ámbito, código de ámbito, sexo, grupo de edad y fecha de defunción. Nótese que las series que son agregados del resto vienen en otra serie aparte. P.e., si se quiere elegir la serie de toda la población (nacional, todos los sexos, todas las edades), hay que filtrar por ambito=“nacional”, cod_sexo=“all” y cod_gedad=“all”.
Los datos aquí descargados se refieren a las defunciones por todas las causas notificadas por los registros civiles informatizados de los municipios correspondientes. Para saber más, consulta las pestañas de “Documentación” y “Notificación”.
Nota: los datos cambian de forma retroactiva, especialmente en los días más recientes. Lo que hoy puedes descargar (o consultar en este portal) mañana puede tener indicadores diferentes en fechas pasadas. El motivo es el retraso en la notificación, detallado en la sección de Documentación.
# Los datos en local
data <- read_csv("data/data.csv", col_types = cols(cod_ambito = col_character(),
cod_ine_ambito = col_character(), nombre_ambito = col_character()),
locale = locale(date_names = "es", encoding = "ISO-8859-1"))# Directamente de Internet
# momo_isciii <- read_csv(link_momo, locale = locale(date_names = "es"))
# momo_isciii <- read_delim(link_momo, ",", escape_double = FALSE,
# # col_names = FALSE,
# locale = locale(date_names = "es",
# decimal_mark = ",",
# grouping_mark = "."),
# trim_ws = TRUE)
momo_isciii <- read_csv(link_momo, col_types = cols(cod_ambito = col_character(),
cod_ine_ambito = col_character(), nombre_ambito = col_character()),
locale = locale(date_names = "es", encoding = "UTF-8"))Pasamos algunos valores a factor
momo_isciii$ambito <- as.factor(momo_isciii$ambito)
momo_isciii$cod_ambito <- as.factor(momo_isciii$cod_ambito)
momo_isciii$cod_ine_ambito <- as.factor(momo_isciii$cod_ine_ambito)
momo_isciii$nombre_ambito <- as.factor(momo_isciii$nombre_ambito)
momo_isciii$cod_sexo <- as.factor(momo_isciii$cod_sexo)
momo_isciii$nombre_sexo <- as.factor(momo_isciii$nombre_sexo)
momo_isciii$cod_gedad <- as.factor(momo_isciii$cod_gedad)
momo_isciii$nombre_gedad <- as.factor(momo_isciii$nombre_gedad)## ambito cod_ambito cod_ine_ambito
## ccaa :170772 AN : 8988 1 : 8988
## nacional: 8988 AR : 8988 10 : 8988
## AS : 8988 11 : 8988
## CB : 8988 12 : 8988
## CE : 8988 13 : 8988
## (Other):125832 (Other):125832
## NA's : 8988 NA's : 8988
## nombre_ambito cod_sexo nombre_sexo cod_gedad
## Andalucía : 8988 1 :59920 hombres:59920 65_74 :44940
## Aragón : 8988 6 :59920 mujeres:59920 all :44940
## Asturias, Principado de: 8988 all:59920 todos :59920 mas_74 :44940
## Balears, Illes : 8988 menos_65:44940
## Canarias : 8988
## (Other) :125832
## NA's : 8988
## nombre_gedad fecha_defuncion defunciones_observadas
## edad < 65 :44940 Min. :2018-04-23 Min. : 0.00
## edad > 75 :44940 1st Qu.:2018-10-27 1st Qu.: 2.00
## edad 65-74:44940 Median :2019-05-02 Median : 8.00
## todos :44940 Mean :2019-05-02 Mean : 36.85
## 3rd Qu.:2019-11-05 3rd Qu.: 27.00
## Max. :2020-05-10 Max. :2466.00
##
## defunciones_observadas_lim_inf defunciones_observadas_lim_sup
## Min. : 0.0 Min. : 0.0
## 1st Qu.: 2.0 1st Qu.: 2.0
## Median : 8.0 Median : 8.0
## Mean : 36.8 Mean : 36.9
## 3rd Qu.: 27.0 3rd Qu.: 27.0
## Max. :2466.0 Max. :2466.0
##
## defunciones_esperadas defunciones_esperadas_q01 defunciones_esperadas_q99
## Min. : 0.00 Min. : 0.00 Min. : 0.00
## 1st Qu.: 2.00 1st Qu.: 0.00 1st Qu.: 6.31
## Median : 8.00 Median : 2.69 Median : 15.00
## Mean : 36.07 Mean : 27.33 Mean : 47.56
## 3rd Qu.: 26.50 3rd Qu.: 16.38 3rd Qu.: 38.62
## Max. :1327.00 Max. :1176.28 Max. :1693.27
##
Esto lo necesitamos para “traducir” los códigos
##
## Andalucía Aragón Asturias, Principado de Balears, Illes Canarias Cantabria
## AN 8988 0 0 0 0 0
## AR 0 8988 0 0 0 0
## AS 0 0 8988 0 0 0
## CB 0 0 0 0 0 8988
## CE 0 0 0 0 0 0
## CL 0 0 0 0 0 0
## CM 0 0 0 0 0 0
## CN 0 0 0 0 8988 0
## CT 0 0 0 0 0 0
## EX 0 0 0 0 0 0
## GA 0 0 0 0 0 0
## IB 0 0 0 8988 0 0
## MC 0 0 0 0 0 0
## MD 0 0 0 0 0 0
## ML 0 0 0 0 0 0
## NC 0 0 0 0 0 0
## PV 0 0 0 0 0 0
## RI 0 0 0 0 0 0
## VC 0 0 0 0 0 0
##
## Castilla - La Mancha Castilla y León Cataluña Ceuta Comunitat Valenciana
## AN 0 0 0 0 0
## AR 0 0 0 0 0
## AS 0 0 0 0 0
## CB 0 0 0 0 0
## CE 0 0 0 8988 0
## CL 0 8988 0 0 0
## CM 8988 0 0 0 0
## CN 0 0 0 0 0
## CT 0 0 8988 0 0
## EX 0 0 0 0 0
## GA 0 0 0 0 0
## IB 0 0 0 0 0
## MC 0 0 0 0 0
## MD 0 0 0 0 0
## ML 0 0 0 0 0
## NC 0 0 0 0 0
## PV 0 0 0 0 0
## RI 0 0 0 0 0
## VC 0 0 0 0 8988
##
## Extremadura Galicia Madrid, Comunidad de Melilla Murcia, Región de
## AN 0 0 0 0 0
## AR 0 0 0 0 0
## AS 0 0 0 0 0
## CB 0 0 0 0 0
## CE 0 0 0 0 0
## CL 0 0 0 0 0
## CM 0 0 0 0 0
## CN 0 0 0 0 0
## CT 0 0 0 0 0
## EX 8988 0 0 0 0
## GA 0 8988 0 0 0
## IB 0 0 0 0 0
## MC 0 0 0 0 8988
## MD 0 0 8988 0 0
## ML 0 0 0 8988 0
## NC 0 0 0 0 0
## PV 0 0 0 0 0
## RI 0 0 0 0 0
## VC 0 0 0 0 0
##
## Navarra, Comunidad Foral de País Vasco Rioja, La
## AN 0 0 0
## AR 0 0 0
## AS 0 0 0
## CB 0 0 0
## CE 0 0 0
## CL 0 0 0
## CM 0 0 0
## CN 0 0 0
## CT 0 0 0
## EX 0 0 0
## GA 0 0 0
## IB 0 0 0
## MC 0 0 0
## MD 0 0 0
## ML 0 0 0
## NC 8988 0 0
## PV 0 8988 0
## RI 0 0 8988
## VC 0 0 0
Guardamos
# Un dataset intermedio
momo_temp <- momo_isciii %>%
dplyr::filter(ambito == 'nacional', cod_sexo == 'all', cod_gedad == 'all')
figura2 <- plot_ly(momo_temp,
x = ~fecha_defuncion, y = ~defunciones_esperadas_q99,
type = 'scatter', mode = 'lines',
line = list(color = 'transparent'),
showlegend = FALSE, name = 'Esperadas límite superior')
figura2 <- figura2 %>% add_trace(y = ~defunciones_esperadas_q01,
type = 'scatter', mode = 'lines',
fill = 'tonexty', fillcolor = 'rgba(0, 100, 80, 0.2)',
line = list(color = 'transparent'),
showlegend = FALSE, name = 'Esperadas límite inferior')
figura2 <- figura2 %>% add_trace(x = ~fecha_defuncion, y = ~defunciones_esperadas,
type = 'scatter', mode = 'lines',
line = list(color='rgb(0, 100, 80)'),
name = 'Defunciones Esperadas')
figura2 <- figura2 %>% add_trace(x = ~fecha_defuncion, y = ~defunciones_observadas,
type = 'scatter', mode = 'lines',
line = list(color='black'),
name = 'Defunciones Observadas')
figura2Defunciones observadas (negro) y defunciones estimadas (verde), con el intervalo de confianza al 99% (banda verde). España.
Mortalidad por todas las causas. Comunidades Autónomas
y = ~get(input$Measure)
# Un dataset intermedio
momo_temp <- momo_isciii %>%
dplyr::filter(ambito == 'nacional', cod_sexo == 'all', cod_gedad == 'all',
fecha_defuncion > '2019-12-31')
figura3 <- plot_ly(momo_temp,
x = ~fecha_defuncion, y = ~defunciones_esperadas_q99,
type = 'scatter', mode = 'lines',
line = list(color = 'transparent'),
showlegend = FALSE, name = 'Esperadas límite superior')
figura3 <- figura3 %>% add_trace(y = ~defunciones_esperadas_q01,
type = 'scatter', mode = 'lines',
fill = 'tonexty', fillcolor = 'rgba(0, 100, 80, 0.2)',
line = list(color = 'transparent'),
showlegend = FALSE, name = 'Esperadas límite inferior')
figura3 <- figura3 %>% add_trace(x = ~fecha_defuncion, y = ~defunciones_esperadas,
type = 'scatter', mode = 'lines',
line = list(color='rgb(0, 100, 80)'),
name = 'Defunciones Esperadas')
figura3 <- figura3 %>% add_trace(x = ~fecha_defuncion, y = ~defunciones_observadas,
type = 'scatter', mode = 'lines',
line = list(color='black'),
name = 'Defunciones Observadas')
figura3 <- figura3 %>% layout(title = "Mortalidad por todas las causas. España")
figura3# Un dataset intermedio
momo_temp <- momo_isciii %>%
dplyr::filter(ambito == 'nacional', cod_sexo == 'all', cod_gedad == 'all',
fecha_defuncion > '2019-12-31')
# Algunos valores para plotly
a_x <- list(
title = "Fecha",
# titlefont = f1,
showticklabels = TRUE,
tickangle = 90,
# tickfont = f2,
exponentformat = "E"
)
a_y <- list(
title = "Defunciones",
# titlefont = f1,
showticklabels = TRUE,
# tickangle = 45,
# tickfont = f2,
exponentformat = "E"
)
figura4 <- plot_ly(momo_temp,
x = ~fecha_defuncion, y = ~defunciones_esperadas_q99,
type = 'scatter', mode = 'lines',
line = list(color = 'transparent'),
showlegend = FALSE, name = 'Esperadas límite superior')
figura4 <- figura4 %>% add_trace(y = ~defunciones_esperadas_q01,
type = 'scatter', mode = 'lines',
fill = 'tonexty', fillcolor = 'rgba(0, 100, 80, 0.2)',
line = list(color = 'transparent'),
showlegend = FALSE, name = 'Esperadas límite inferior')
figura4 <- figura4 %>% add_trace(x = ~fecha_defuncion, y = ~defunciones_esperadas,
type = 'scatter', mode = 'lines',
line = list(color='rgb(0, 100, 80)'),
name = 'Defunciones Esperadas')
figura4 <- figura4 %>% add_trace(x = ~fecha_defuncion, y = ~defunciones_observadas,
type = 'scatter', mode = 'lines',
line = list(color='black'),
name = 'Defunciones Observadas')
figura4 <- figura4 %>% layout(title = "Mortalidad por todas las causas. España",
xaxis = a_x,
yaxis = a_y)
figura4 <- figura4 %>% config(locale = 'es')
figura4# Un dataset intermedio
momo_temp <- momo_isciii %>%
dplyr::filter(nombre_ambito == 'Rioja, La', cod_sexo == 'all', cod_gedad == 'all',
fecha_defuncion > '2019-12-31')
# Algunos valores para plotly
a_x <- list(
title = "Fecha",
# titlefont = f1,
showticklabels = TRUE,
tickangle = 90,
# tickfont = f2,
exponentformat = "E"
)
a_y <- list(
title = "Defunciones",
# titlefont = f1,
showticklabels = TRUE,
# tickangle = 45,
# tickfont = f2,
exponentformat = "E"
)
figura5 <- plot_ly(momo_temp,
x = ~fecha_defuncion, y = ~defunciones_esperadas_q99,
type = 'scatter', mode = 'lines',
line = list(color = 'transparent'),
showlegend = FALSE, name = 'Esperadas límite superior')
figura5 <- figura5 %>% add_trace(y = ~defunciones_esperadas_q01,
type = 'scatter', mode = 'lines',
fill = 'tonexty', fillcolor = 'rgba(0, 100, 80, 0.2)',
line = list(color = 'transparent'),
showlegend = FALSE, name = 'Esperadas límite inferior')
figura5 <- figura5 %>% add_trace(x = ~fecha_defuncion, y = ~defunciones_esperadas,
type = 'scatter', mode = 'lines',
line = list(color='rgb(0, 100, 80)'),
name = 'Defunciones Esperadas')
figura5 <- figura5 %>% add_trace(x = ~fecha_defuncion, y = ~defunciones_observadas,
type = 'scatter', mode = 'lines',
line = list(color='black'),
name = 'Defunciones Observadas')
figura5 <- figura5 %>% layout(title = "Mortalidad por todas las causas. La Rioja",
xaxis = a_x,
yaxis = a_y)
figura5 <- figura5 %>% config(locale = 'es')
figura5## CCAA FECHA CASOS PCR+
## Rioja, La :81 Min. :2020-02-20 Min. : NA Min. : 0
## Andalucía : 0 1st Qu.:2020-03-11 1st Qu.: NA 1st Qu.: 220
## Aragón : 0 Median :2020-03-31 Median : NA Median :1960
## Asturias, Principado de: 0 Mean :2020-03-31 Mean :NaN Mean :1961
## Cantabria : 0 3rd Qu.:2020-04-20 3rd Qu.: NA 3rd Qu.:3684
## Ceuta : 0 Max. :2020-05-10 Max. : NA Max. :4008
## (Other) : 0 NA's :81
## TestAc+ Hospitalizados UCI Fallecidos
## Min. : 273.0 Min. : 13.0 Min. : 1.00 Min. : 0.00
## 1st Qu.: 680.5 1st Qu.: 334.0 1st Qu.:30.75 1st Qu.: 35.25
## Median :1137.0 Median :1064.5 Median :70.00 Median :189.00
## Mean : 972.4 Mean : 876.9 Mean :57.56 Mean :176.73
## 3rd Qu.:1296.0 3rd Qu.:1375.0 3rd Qu.:83.25 3rd Qu.:312.00
## Max. :1374.0 Max. :1475.0 Max. :91.00 Max. :346.00
## NA's :50 NA's :19 NA's :17 NA's :17
## Recuperados diario_hospitalizados diario_uci diario_fallecidos
## Min. : 1.0 Min. : 1.00 Min. :0.000 Min. : 0.000
## 1st Qu.: 51.5 1st Qu.: 8.00 1st Qu.:0.000 1st Qu.: 1.000
## Median :1296.5 Median :19.00 Median :1.000 Median : 4.000
## Mean :1194.3 Mean :23.97 Mean :1.429 Mean : 5.492
## 3rd Qu.:2027.5 3rd Qu.:37.00 3rd Qu.:2.000 3rd Qu.: 8.000
## Max. :2700.0 Max. :78.00 Max. :9.000 Max. :19.000
## NA's :19 NA's :20 NA's :18 NA's :18
## [1] 1 1
## Adding missing grouping variables: `CCAA`
## The rioja_ts_uci_daily series is a mts object with 2 variables and 81 observations
## Frequency: 365
## Start time: 1 1
## End time: 1 81
## CCAA UCI
## Min. :17 Min. : 1.00
## 1st Qu.:17 1st Qu.:30.75
## Median :17 Median :70.00
## Mean :17 Mean :57.56
## 3rd Qu.:17 3rd Qu.:83.25
## Max. :17 Max. :91.00
## NA's :17
## CCAA FECHA CASOS PCR+ TestAc+
## Min. :17 Min. :18312 Min. : NA Min. : 0 Min. : 273.0
## 1st Qu.:17 1st Qu.:18332 1st Qu.: NA 1st Qu.: 220 1st Qu.: 680.5
## Median :17 Median :18352 Median : NA Median :1960 Median :1137.0
## Mean :17 Mean :18352 Mean :NaN Mean :1961 Mean : 972.4
## 3rd Qu.:17 3rd Qu.:18372 3rd Qu.: NA 3rd Qu.:3684 3rd Qu.:1296.0
## Max. :17 Max. :18392 Max. : NA Max. :4008 Max. :1374.0
## NA's :81 NA's :50
## Hospitalizados UCI Fallecidos Recuperados
## Min. : 13.0 Min. : 1.00 Min. : 0.00 Min. : 1.0
## 1st Qu.: 334.0 1st Qu.:30.75 1st Qu.: 35.25 1st Qu.: 51.5
## Median :1064.5 Median :70.00 Median :189.00 Median :1296.5
## Mean : 876.9 Mean :57.56 Mean :176.73 Mean :1194.3
## 3rd Qu.:1375.0 3rd Qu.:83.25 3rd Qu.:312.00 3rd Qu.:2027.5
## Max. :1475.0 Max. :91.00 Max. :346.00 Max. :2700.0
## NA's :19 NA's :17 NA's :17 NA's :19
## diario_hospitalizados diario_uci diario_fallecidos
## Min. : 1.00 Min. :0.000 Min. : 0.000
## 1st Qu.: 8.00 1st Qu.:0.000 1st Qu.: 1.000
## Median :19.00 Median :1.000 Median : 4.000
## Mean :23.97 Mean :1.429 Mean : 5.492
## 3rd Qu.:37.00 3rd Qu.:2.000 3rd Qu.: 8.000
## Max. :78.00 Max. :9.000 Max. :19.000
## NA's :20 NA's :18 NA's :18
Terminamos con la información de la sesión
## R version 4.0.0 (2020-04-24)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 18.04.4 LTS
##
## Matrix products: default
## BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1
##
## locale:
## [1] LC_CTYPE=es_ES.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=es_ES.UTF-8 LC_COLLATE=es_ES.UTF-8
## [5] LC_MONETARY=es_ES.UTF-8 LC_MESSAGES=es_ES.UTF-8
## [7] LC_PAPER=es_ES.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=es_ES.UTF-8 LC_IDENTIFICATION=C
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] sf_0.9-3 plotly_4.9.2.1 ggplot2_3.3.0 stringr_1.4.0 tmap_3.0
## [6] rvest_0.3.5 xml2_1.3.2 TSstudio_0.1.6 dplyr_0.8.5 readr_1.3.1
##
## loaded via a namespace (and not attached):
## [1] httr_1.4.1 tidyr_1.0.3 jsonlite_1.6.1
## [4] viridisLite_0.3.0 assertthat_0.2.1 sp_1.4-1
## [7] selectr_0.4-2 yaml_2.2.1 pillar_1.4.4
## [10] lattice_0.20-41 glue_1.4.0 digest_0.6.25
## [13] RColorBrewer_1.1-2 colorspace_1.4-1 leaflet.providers_1.9.0
## [16] htmltools_0.4.0 XML_3.99-0.3 pkgconfig_2.0.3
## [19] raster_3.1-5 stars_0.4-1 purrr_0.3.4
## [22] scales_1.1.0 tibble_3.0.1 farver_2.0.3
## [25] ellipsis_0.3.0 withr_2.2.0 leafsync_0.1.0
## [28] lazyeval_0.2.2 magrittr_1.5 crayon_1.3.4
## [31] evaluate_0.14 xts_0.12-0 lwgeom_0.2-3
## [34] class_7.3-17 tools_4.0.0 data.table_1.12.8
## [37] hms_0.5.3 lifecycle_0.2.0 munsell_0.5.0
## [40] compiler_4.0.0 e1071_1.7-3 rlang_0.4.6
## [43] classInt_0.4-3 units_0.6-6 grid_4.0.0
## [46] tmaptools_3.0 dichromat_2.0-0 htmlwidgets_1.5.1
## [49] crosstalk_1.1.0.1 leafem_0.1.1 base64enc_0.1-3
## [52] labeling_0.3 rmarkdown_2.1 gtable_0.3.0
## [55] codetools_0.2-16 abind_1.4-5 DBI_1.1.0
## [58] curl_4.3 R6_2.4.1 zoo_1.8-8
## [61] knitr_1.28 KernSmooth_2.23-17 stringi_1.4.6
## [64] parallel_4.0.0 Rcpp_1.0.4.6 vctrs_0.2.4
## [67] png_0.1-7 leaflet_2.0.3 tidyselect_1.0.0
## [70] xfun_0.13
A work by Santiago Mota
santiago_mota@yahoo.es